Patents by Inventor Dung Q. Nguyen

Dung Q. Nguyen 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: 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: 20170109093
    Abstract: Method and system for writing data into a register entry of a processing unit is provided. A logic unit issues an instruction for writing result data into a register entry. At least one functional unit coupled to the logic unit receives the instruction and provides partial result data to be written into the register entry and information regarding the partial result data. A logic circuit coupled to the register entry receives the information regarding the partial result data and writes the partial result data into at least one portion of the register entry based on the received information, the at least one portion of the register entry being determined based on the received information.
    Type: Application
    Filed: October 14, 2015
    Publication date: April 20, 2017
    Inventors: Sam G. CHU, David A. HRUSECKY, Dung Q. NGUYEN, Jose A. PAREDES, David R. TERRY, Brian W. THOMPTO
  • 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: 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: 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
  • Publication number: 20170060677
    Abstract: Embodiments described herein include a computing system that permits partial writes into a memory element—e.g., a register on a processor. For example, the data to be written into the memory element may be spread across multiple sources. The register may receive data from two different sources at different times and perform two separate partial write commands to store the data. Embodiments herein generate an ECC value for each of the partial writes. That is, when storing the data of the first partial write, the computing system generates a first ECC value for the data in the first partial write and stores this value in the memory element. Later, when performing the second partial write, the computing system generates a second ECC value for this data which is also stored in the memory element.
    Type: Application
    Filed: September 29, 2015
    Publication date: March 2, 2017
    Inventors: Dhivya JEGANATHAN, Dung Q. NGUYEN, Jose A. PAREDES, David R. TERRY, Brian W. THOMPTO
  • Publication number: 20170060673
    Abstract: The embodiments herein generate parity check data which serves as parity-on-parity. Stated differently, the parity check data can be used to determine if parity data stored in a memory element has been corrupted. For example, after generating the parity data, a computing system may set the parity check data depending on whether there is an even or odd number of logical ones (or logical zeros) in the parity data. Thus, when the parity data is read out of the memory element, if the parity data does not include the same number of even or odd bits, the parity check data indicates to the computing system that the parity data is corrupted. In one embodiment, to reduce the likelihood that the parity check data becomes corrupted, the computing system stores this data in hardened latches which are less susceptible to soft errors than other types of memory elements.
    Type: Application
    Filed: September 1, 2015
    Publication date: March 2, 2017
    Inventors: Joshua W. Bowman, Sam G. Chu, Dhivya Jeganathan, Cliff Kucharski, Dung Q. Nguyen, David R. Terry
  • Publication number: 20170063401
    Abstract: Embodiments described herein include a computing system that permits partial writes into a memory element—e.g., a register on a processor. For example, the data to be written into the memory element may be spread across multiple sources. The register may receive data from two different sources at different times and perform two separate partial write commands to store the data. Embodiments herein generate an ECC value for each of the partial writes. That is, when storing the data of the first partial write, the computing system generates a first ECC value for the data in the first partial write and stores this value in the memory element. Later, when performing the second partial write, the computing system generates a second ECC value for this data which is also stored in the memory element.
    Type: Application
    Filed: September 1, 2015
    Publication date: March 2, 2017
    Inventors: Dhivya JEGANATHAN, Dung Q. NGUYEN, Jose A. PAREDES, David R. TERRY, Brian W. THOMPTO
  • Publication number: 20170060679
    Abstract: Embodiments described herein include a computing system that permits partial writes into a memory element—e.g., a register on a processor. For example, the data to be written into the memory element may be spread across multiple sources. The register may receive data from two different sources at different times and perform two separate partial write commands to store the data. Embodiments herein generate an ECC value for each of the partial writes. That is, when storing the data of the first partial write, the computing system generates a first ECC value for the data in the first partial write and stores this value in the memory element. Later, when performing the second partial write, the computing system generates a second ECC value for this data which is also stored in the memory element.
    Type: Application
    Filed: September 1, 2015
    Publication date: March 2, 2017
    Inventors: Dhivya JEGANATHAN, Dung Q. NGUYEN, Jose A. PAREDES, David R. TERRY, Brian W. THOMPTO
  • Publication number: 20170060678
    Abstract: Embodiments described herein include a computing system that permits partial writes into a memory element—e.g., a register on a processor. For example, the data to be written into the memory element may be spread across multiple sources. The register may receive data from two different sources at different times and perform two separate partial write commands to store the data. Embodiments herein generate an ECC value for each of the partial writes. That is, when storing the data of the first partial write, the computing system generates a first ECC value for the data in the first partial write and stores this value in the memory element. Later, when performing the second partial write, the computing system generates a second ECC value for this data which is also stored in the memory element.
    Type: Application
    Filed: September 1, 2015
    Publication date: March 2, 2017
    Inventors: Dhivya JEGANATHAN, Dung Q. NGUYEN, Jose A. PAREDES, David R. TERRY, Brian W. THOMPTO
  • Publication number: 20170031686
    Abstract: In an approach for selecting and issuing an oldest ready instruction in an issue queue, one or more processors receive one or more instructions in an issue queue. Ready to execute instructions are identified. An age of the instructions are represented in a first age array. One or more subsets of the instructions are generated for subset age arrays that each hold an age of the instructions in a subset. A major signal is generated that identifies an oldest ready instruction in the first age array and a subset signal is simultaneously generated that identifies an oldest ready instruction in each subset age array. A candidate instruction is selected with each subset signal that is represented in the subset age array of the subset signal, wherein a candidate instruction is an oldest ready instruction in the subset age array. A candidate instruction is selected with the major signal and issued.
    Type: Application
    Filed: May 4, 2016
    Publication date: February 2, 2017
    Inventors: Jeffrey C. Brownscheidle, Sundeep Chadha, Maureen A. Delaney, Dung Q. Nguyen
  • Publication number: 20170003971
    Abstract: Techniques disclosed herein describe a variable latency pipe for interleaving instruction tags in a processor. According to one embodiment presented herein, an instruction tag is associated with an instruction upon issue of the instruction from the issue queue. One of a plurality of positions in the latency pipe is determined. The pipe stores one or more instruction tags, each associated with a respective instruction. The pipe also stores the instruction tags in a respective position based on the latency of each respective instruction. The instruction tag is stored at the determined position in the pipe.
    Type: Application
    Filed: March 17, 2016
    Publication date: January 5, 2017
    Inventors: Salma Ayub, Josh BOWMAN, Sundeep CHADHA, Dhivya JEGANATHAN, Cliff KUCHARSKI, Dung Q. NGUYEN
  • Publication number: 20170003969
    Abstract: Techniques disclosed herein describe a variable latency pipe for interleaving instruction tags in a processor. According to one embodiment presented herein, an instruction tag is associated with an instruction upon issue of the instruction from the issue queue. One of a plurality of positions in the latency pipe is determined. The pipe stores one or more instruction tags, each associated with a respective instruction. The pipe also stores the instruction tags in a respective position based on the latency of each respective instruction. The instruction tag is stored at the determined position in the pipe.
    Type: Application
    Filed: June 30, 2015
    Publication date: January 5, 2017
    Inventors: Salma AYUB, Josh BOWMAN, Sundeep CHADHA, Dhivya JEGANATHAN, Cliff KUCHARSKI, Dung Q. NGUYEN
  • Publication number: 20160378503
    Abstract: Techniques are disclosed for back-to-back issue of instructions in a processor. A first instruction is stored in a queue position in an issue queue. The issue queue stores instructions in a corresponding queue position. The first instruction includes a target instruction tag and at least a source instruction tag. The target instruction tag is stored in a table storing a plurality of target instruction tags associated with a corresponding instruction. Each stored target instruction tag specifies a logical register that stores a target operand. Upon determining, based on the source instruction tag associated with the first instruction and the target instruction tag associated with a second instruction, that the first instruction is dependent on the second instruction, a pointer to the first instruction is associated with the second instruction. The pointer is used to wake up the first instruction upon issue of the second instruction.
    Type: Application
    Filed: June 26, 2015
    Publication date: December 29, 2016
    Inventors: Jeffrey C. BROWNSCHEIDLE, Sundeep CHADHA, Maureen A. DELANEY, Dung Q. NGUYEN
  • Publication number: 20160378504
    Abstract: Techniques are disclosed for back-to-back issue of instructions in a processor. A first instruction is stored in a queue position in an issue queue. The issue queue stores instructions in a corresponding queue position. The first instruction includes a target instruction tag and at least a source instruction tag. The target instruction tag is stored in a table storing a plurality of target instruction tags associated with a corresponding instruction. Each stored target instruction tag specifies a logical register that stores a target operand. Upon determining, based on the source instruction tag associated with the first instruction and the target instruction tag associated with a second instruction, that the first instruction is dependent on the second instruction, a pointer to the first instruction is associated with the second instruction. The pointer is used to wake up the first instruction upon issue of the second instruction.
    Type: Application
    Filed: August 24, 2015
    Publication date: December 29, 2016
    Inventors: Jeffrey C. BROWNSCHEIDLE, Sundeep CHADHA, Maureen A. DELANEY, Dung Q. NGUYEN
  • Publication number: 20160378501
    Abstract: A split level history buffer in a central processing unit is provided. A history buffer is partitioned into a first portion and a second portion, wherein the first portion includes a first tagged instruction. A result is generated for the first tagged instruction. A determination whether a second tagged instruction is to be stored in the first portion of the history buffer is made. Responsive to the determination that the second tagged instruction is to be stored in the first portion of the history buffer, the first tagged instruction and the generated result for the first tagged instruction is written to the second portion of the history buffer.
    Type: Application
    Filed: September 20, 2016
    Publication date: December 29, 2016
    Inventors: Hung Q. Le, Dung Q. Nguyen, David R. Terry
  • Publication number: 20160378500
    Abstract: A split level history buffer in a central processing unit is provided. A history buffer is partitioned into a first portion and a second portion, wherein the first portion includes a first tagged instruction. A result is generated for the first tagged instruction. A determination whether a second tagged instruction is to be stored in the first portion of the history buffer is made. Responsive to the determination that the second tagged instruction is to be stored in the first portion of the history buffer, the first tagged instruction and the generated result for the first tagged instruction is written to the second portion of the history buffer.
    Type: Application
    Filed: September 16, 2016
    Publication date: December 29, 2016
    Inventors: Hung Q. Le, Dung Q. Nguyen, David R. Terry
  • Publication number: 20160371087
    Abstract: A split level history buffer in a central processing unit is provided. A history buffer is split into a first portion and a second portion. An instruction fetch unit fetches and tags instructions with unique tags. A register file stores tagged instructions. An execution unit generates results for tagged instructions. A first instruction is fetched, tagged, and stored in an entry of the register file. A second instruction is fetched and tagged, and then evicts the first instruction from the register file, such that the second instruction is stored in the entry of the register file. Subsequently, the first instruction is stored in an entry in the first portion of the history buffer. After a result for the first instruction is generated, the first instruction is moved from the first portion of the history buffer to the second portion of the history buffer.
    Type: Application
    Filed: April 6, 2016
    Publication date: December 22, 2016
    Inventors: Hung Q. Le, Dung Q. Nguyen, David R. Terry
  • Publication number: 20160371088
    Abstract: A split level history buffer in a central processing unit is provided. A history buffer is partitioned into a first portion and a second portion, wherein the first portion includes a first tagged instruction. A result is generated for the first tagged instruction. A determination whether a second tagged instruction is to be stored in the first portion of the history buffer is made. Responsive to the determination that the second tagged instruction is to be stored in the first portion of the history buffer, the first tagged instruction and the generated result for the first tagged instruction is written to the second portion of the history buffer.
    Type: Application
    Filed: June 16, 2015
    Publication date: December 22, 2016
    Inventors: Hung Q. Le, Dung Q. Nguyen, David R. Terry