Patents by Inventor Susan E. Eisen

Susan E. Eisen 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: 10255071
    Abstract: Method and system for managing a speculative transaction in a processing unit is provided. The speculative transaction is initiated by dispatching a first instruction indicating start of the speculative transaction. One or more register file (RF) entries are marked as pre-transaction memory (PTM), in response to the initiating. At least one second instruction targeting at least one of the marked RF entries is dispatched, while the transaction is active, wherein the at least one second instruction writes new result data into the at least one RF entry. Previous result data evicted from the at least one RF entry by the new result data, is saved into a history buffer (HB) entry. The HB entry is marked as PTM, in response to the saving, wherein the processing unit, upon detecting a trigger, is rolled back to a state before the initiating the transaction by restoring the previous result data to the at least one RF entry.
    Type: Grant
    Filed: October 14, 2015
    Date of Patent: April 9, 2019
    Assignee: International Business Machines Corporation
    Inventors: Salma Ayub, Susan E. Eisen, Glenn O. Kincaid, Cliff Kucharski, Christopher M. Mueller, Dung Q. Nguyen, David R. Terry
  • Publication number: 20190012175
    Abstract: Mechanisms are provided, in a processor, for executing instructions that are younger than a previously dispatched synchronization (sync) instruction is provided. An instruction sequencer unit of the processor dispatches a sync instruction. The sync instruction is sent to a nest of one or more devices outside of the processor. The instruction sequencer unit dispatches a subsequent instruction after dispatching the sync instruction. The dispatching of the subsequent instruction after dispatching the sync instruction is performed prior to receiving a sync acknowledgement response from the nest. The instruction sequencer unit performs a completion of the subsequent instruction based on whether completion of the subsequent instruction is dependent upon receiving the sync acknowledgement from the nest and completion of the sync instruction.
    Type: Application
    Filed: August 30, 2018
    Publication date: January 10, 2019
    Inventors: Susan E. Eisen, Hung Q. Le, Bryan J. Lloyd, Dung Q. Nguyen, David S. Ray, Benjamin W. Stolt, Shih-Hsiung S. Tung
  • Publication number: 20180349141
    Abstract: A system and process for managing thread transitions includes providing two data register sets coupled to a processor and using, by the processor, the two register sets as first-level registers for thread execution. A determination is made whether a quantity of the first-level registers needed to execute one or more threads exceeds a quantity of the first-level registers of the two data register sets. Responsive to determining that the quantity of the first-level registers needed to execute the one or more threads exceeds the quantity of the first-level registers of the two data register sets, a portion of main memory or cache memory is assigned as second-level registers where the second-level registers serve as registers of at least one of the two data register sets for executing the one or more threads.
    Type: Application
    Filed: August 11, 2018
    Publication date: December 6, 2018
    Inventors: Christopher M. Abernathy, Mary D. Brown, Susan E. Eisen, James A. Kahle, Hung Q. Le, Dung Q. Nguyen
  • Publication number: 20180260224
    Abstract: Executing system call vectored (SCV) instructions in a multi-slice processor including receiving, by an instruction fetch unit, a SCV instruction, wherein the SCV instruction is a system call from an operating system; sending the SCV instruction to a branch issue queue; determining, by the branch issue queue, that the SCV instruction is next-to-complete; issuing the SCV instruction to a branch resolution unit; and executing the SCV instruction by the branch resolution unit.
    Type: Application
    Filed: May 16, 2018
    Publication date: September 13, 2018
    Inventors: SUSAN E. EISEN, NICHOLAS R. ORZOL, MEHUL PATEL, EULA A. TOLENTINO
  • Patent number: 10073699
    Abstract: Method and system for writing a history buffer in a processing unit is provided. At least a first instruction and a second instruction are dispatched in a single processing cycle, targeting a same register file entry. The processing unit includes two or more processing slices, each processing slice comprising a corresponding history buffer and at least a portion of a register file. Upon determining that first result data corresponding to the first instruction is older than second result data corresponding to the second instruction, the first result data is written into a history buffer bypassing the register file entry, in response to the determination. Further, the second result data is written into the register file entry.
    Type: Grant
    Filed: October 14, 2015
    Date of Patent: September 11, 2018
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Susan E. Eisen, Cliff Kucharski, Hung Q. Le, Dung Q. Nguyen, David R. Terry
  • Patent number: 10067765
    Abstract: Mechanisms are provided, in a processor, for executing instructions that are younger than a previously dispatched synchronization (sync) instruction is provided. An instruction sequencer unit of the processor dispatches a sync instruction. The sync instruction is sent to a nest of one or more devices outside of the processor. The instruction sequencer unit dispatches a subsequent instruction after dispatching the sync instruction. The dispatching of the subsequent instruction after dispatching the sync instruction is performed prior to receiving a sync acknowledgement response from the nest. The instruction sequencer unit performs a completion of the subsequent instruction based on whether completion of the subsequent instruction is dependent upon receiving the sync acknowledgement from the nest and completion of the sync instruction.
    Type: Grant
    Filed: May 14, 2012
    Date of Patent: September 4, 2018
    Assignee: International Business Machines Corporation
    Inventors: Susan E. Eisen, Hung Q. Le, Bryan J. Lloyd, Dung Q. Nguyen, David S. Ray, Benjamin W. Stolt, Shih-Hsiung S. Tung
  • Patent number: 10055226
    Abstract: A system and process for managing thread transitions includes determining that a transition is to be made regarding the relative use of two data register sets where the two data register sets are used by a processor as first-level registers for thread execution. Based on the transition determination, a determination is made whether to move thread data in at least one of the first-level registers to second-level registers. Responsive to determining to move the thread data, a portion of main memory or cache memory is assigned as the second-level registers where the second-level registers serve as registers of at least one of the two data register sets for executing a thread. The thread data from the at least one first-level register is moved to the second-level registers based on the move determination.
    Type: Grant
    Filed: July 2, 2017
    Date of Patent: August 21, 2018
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Christopher M. Abernathy, Mary D. Brown, Susan E. Eisen, James A. Kahle, Hung Q. Le, Dung Q. Nguyen
  • Patent number: 10048963
    Abstract: Executing system call vectored (SCV) instructions in a multi-slice processor including receiving, by an instruction fetch unit, a SCV instruction, wherein the SCV instruction is a system call from an operating system; sending the SCV instruction to a branch issue queue; determining, by the branch issue queue, that the SCV instruction is next-to-complete; issuing the SCV instruction to a branch resolution unit; and executing the SCV instruction by the branch resolution unit.
    Type: Grant
    Filed: May 23, 2016
    Date of Patent: August 14, 2018
    Assignee: International Business Machines Corporation
    Inventors: Susan E. Eisen, Nicholas R. Orzol, Mehul Patel, Eula A. Tolentino
  • Patent number: 9971687
    Abstract: A multi-slice processor that includes execution slices, and a history buffer, where the history buffer includes a plurality of entries, where at least one of the entries includes transactional memory state data that corresponds to a transactional memory instruction updating a transaction memory state, and where operation of such a multi-slice processor includes: propagating a flush signal to the plurality of entries of the history buffer; responsive to the flush signal, generating, from an entry of the history buffer, the transactional memory state data; and restoring to a transactional memory state in dependence upon the transactional memory state data.
    Type: Grant
    Filed: February 15, 2016
    Date of Patent: May 15, 2018
    Assignee: International Business Machines Corporation
    Inventors: Brian D. Barrick, Susan E. Eisen, Kurt A. Feiste, Dung Q. Nguyen, Kenneth L. Ward, Jing Zhang
  • Publication number: 20170337058
    Abstract: Executing system call vectored (SCV) instructions in a multi-slice processor including receiving, by an instruction fetch unit, a SCV instruction, wherein the SCV instruction is a system call from an operating system; sending the SCV instruction to a branch issue queue; determining, by the branch issue queue, that the SCV instruction is next-to-complete; issuing the SCV instruction to a branch resolution unit; and executing the SCV instruction by the branch resolution unit.
    Type: Application
    Filed: May 23, 2016
    Publication date: November 23, 2017
    Inventors: SUSAN E. EISEN, NICHOLAS R. ORZOL, MEHUL PATEL, EULA A. TOLENTINO
  • Publication number: 20170300331
    Abstract: A system and process for managing thread transitions includes determining that a transition is to be made regarding the relative use of two data register sets where the two data register sets are used by a processor as first-level registers for thread execution. Based on the transition determination, a determination is made whether to move thread data in at least one of the first-level registers to second-level registers. Responsive to determining to move the thread data, a portion of main memory or cache memory is assigned as the second-level registers where the second-level registers serve as registers of at least one of the two data register sets for executing a thread. The thread data from the at least one first-level register is moved to the second-level registers based on the move determination.
    Type: Application
    Filed: July 2, 2017
    Publication date: October 19, 2017
    Inventors: Christopher M. Abernathy, Mary D. Brown, Susan E. Eisen, James A. Kahle, Hung Q. Le, Dung Q. Nguyen
  • Publication number: 20170300336
    Abstract: A hardware execution unit within a processor core executes a second instruction, which is part of a software thread, and which is executed out of order within the software thread. A sticky bit flip detection hardware device detects a change to a sticky bit in a floating-point status and control register (FPSCR) within the processor core. An instruction issue hardware unit identifies a first instruction that is in the software thread that is capable of reading or clearing the sticky bit. A flushing execution unit flushes all results of instructions from an instruction completion table (ICT) that include and are after the first instruction in the software thread. A hardware dispatch device dispatches all instructions that include and are after the first instruction in the software thread for execution by one or more hardware execution units within the processor core in a next-to-complete (NTC) sequential order.
    Type: Application
    Filed: April 18, 2016
    Publication date: October 19, 2017
    Inventors: BRIAN D. BARRICK, STEVEN J. BATTLE, SUSAN E. EISEN, MICHAEL J. GENDEN, GLENN O. KINCAID, DUNG Q. NGUYEN, BRIAN W. THOMPTO, KENNETH L. WARD
  • Publication number: 20170235674
    Abstract: A multi-slice processor that includes execution slices, and a history buffer, where the history buffer includes a plurality of entries, where at least one of the entries includes transactional memory state data that corresponds to a transactional memory instruction updating a transaction memory state, and where operation of such a multi-slice processor includes: propagating a flush signal to the plurality of entries of the history buffer; responsive to the flush signal, generating, from an entry of the history buffer, the transactional memory state data; and restoring to a transactional memory state in dependence upon the transactional memory state data.
    Type: Application
    Filed: February 15, 2016
    Publication date: August 17, 2017
    Inventors: BRIAN D. BARRICK, SUSAN E. EISEN, KURT A. FEISTE, DUNG Q. NGUYEN, KENNETH L. WARD, JING ZHANG
  • Patent number: 9703561
    Abstract: Various systems, processes, products, and techniques may be used to manage thread transitions. In particular implementations, a system and process for managing thread transitions may include the ability to determine that a transition is to be made regarding the relative use of two data register sets and determine, based on the transition determination, whether to move thread data in at least one of the data register sets to second-level registers. The system and process may also include the ability to move the thread data from at least one data register set to second-level registers based on the move determination.
    Type: Grant
    Filed: May 11, 2014
    Date of Patent: July 11, 2017
    Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Christopher M. Abernathy, Mary D. Brown, Susan E. Eisen, James A. Kahle, Hung Q. Le, Dung Q. Nguyen
  • Publication number: 20170109167
    Abstract: Method and system for restoring data to a register file of a processing unit are provided. A history buffer entry (HBE) is marked for restoration to a register file entry. Result data and control information is sent from the HBE to an Issue Queue (ISQ). The ISQ issues an instruction for loading the result data into the register file entry based on the control information. A write back operation is performed to restore the result data to the register file entry, in response to issuing of the instruction.
    Type: Application
    Filed: October 14, 2015
    Publication date: April 20, 2017
    Inventors: Susan E. EISEN, Cliff KUCHARSKI, Hung Q. LE, Dung Q. NGUYEN, David R. TERRY
  • Publication number: 20170109166
    Abstract: Method and system for restoring results to a register file of a processing unit is provided. An instruction is dispatched in a processing slice of the processing unit, targeting a register file, wherein the processing unit includes two or more processing slices, each processing slice including a corresponding history buffer and at least a portion of a register file. The processing unit evicts previous result data from the register file entry to a history buffer corresponding to the processing slice, by writing new result data into the register file entry, in response to the instruction. The processing unit detects a trigger condition relating to a rollback of the processing unit to a previous state, and restores the previous result data from the history buffer to the register file entry, in response to the trigger.
    Type: Application
    Filed: October 14, 2015
    Publication date: April 20, 2017
    Inventors: Susan E. EISEN, Cliff KUCHARSKI, Hung Q. LE, Dung Q. NGUYEN, David R. TERRY
  • Publication number: 20170109171
    Abstract: Method and system for writing a history buffer in a processing unit is provided. At least a first instruction and a second instruction are dispatched in a single processing cycle, targeting a same register file entry. The processing unit includes two or more processing slices, each processing slice comprising a corresponding history buffer and at least a portion of a register file. Upon determining that first result data corresponding to the first instruction is older than second result data corresponding to the second instruction, the first result data is written into a history buffer bypassing the register file entry, in response to the determination. Further, the second result data is written into the register file entry.
    Type: Application
    Filed: October 14, 2015
    Publication date: April 20, 2017
    Inventors: Susan E. EISEN, Cliff KUCHARSKI, Hung Q. LE, Dung Q. NGUYEN, David R. TERRY
  • Publication number: 20170109168
    Abstract: Method and system for managing a speculative transaction in a processing unit is provided. The speculative transaction is initiated by dispatching a first instruction indicating start of the speculative transaction. One or more register file (RF) entries are marked as pre-transaction memory (PTM), in response to the initiating. At least one second instruction targeting at least one of the marked RF entries is dispatched, while the transaction is active, wherein the at least one second instruction writes new result data into the at least one RF entry. Previous result data evicted from the at least one RF entry by the new result data, is saved into a history buffer (HB) entry. The HB entry is marked as PTM, in response to the saving, wherein the processing unit, upon detecting a trigger, is rolled back to a state before the initiating the transaction by restoring the previous result data to the at least one RF entry.
    Type: Application
    Filed: October 14, 2015
    Publication date: April 20, 2017
    Inventors: Salma AYUB, Susan E. EISEN, Glenn O. KINCAID, Cliff KUCHARSKI, Christopher M. MUELLER, Dung Q. NGUYEN, David R. TERRY
  • Publication number: 20170090941
    Abstract: Within a processor, speculative finishes of load instructions only are tracked in a speculative finish table by maintaining an oldest load instruction of a thread in the speculative finish table after data is loaded for the oldest load instruction, wherein a particular queue index tag assigned to the oldest load instruction by an execution unit points to a particular entry in the speculative finish table, wherein the oldest load instruction is waiting to be finished dependent upon an error check code result. Responsive to a flow unit receiving the particular queue index tag with an indicator that the error check code result for data retrieved for the oldest load instruction is good, finishing the oldest load instruction in the particular entry pointed to by the queue index tag and writing an instruction tag stored in the entry for the oldest load instruction out of the speculative finish table for completion.
    Type: Application
    Filed: September 29, 2015
    Publication date: March 30, 2017
    Inventors: SUSAN E. EISEN, DAVID A. HRUSECKY, CHRISTOPHER M. MUELLER, DUNG Q. NGUYEN, A. JAMES VAN NORSTRAND, JR., KENNETH L. WARD
  • Publication number: 20170090937
    Abstract: Within a processor, speculative finishes of load instructions only are tracked in a speculative finish table by maintaining an oldest load instruction of a thread in the speculative finish table after data is loaded for the oldest load instruction, wherein a particular queue index tag assigned to the oldest load instruction by an execution unit points to a particular entry in the speculative finish table, wherein the oldest load instruction is waiting to be finished dependent upon an error check code result. Responsive to a flow unit receiving the particular queue index tag with an indicator that the error check code result for data retrieved for the oldest load instruction is good, finishing the oldest load instruction in the particular entry pointed to by the queue index tag and writing an instruction tag stored in the entry for the oldest load instruction out of the speculative finish table for completion.
    Type: Application
    Filed: October 19, 2015
    Publication date: March 30, 2017
    Inventors: SUSAN E. EISEN, DAVID A. HRUSECKY, CHRISTOPHER M. MUELLER, DUNG Q. NGUYEN, A. JAMES VAN NORSTRAND, JR., KENNETH L. WARD