Patents by Inventor Robert T. Golla

Robert T. Golla 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: 20100250966
    Abstract: A processor including instruction support for implementing hash algorithms may issue, for execution, programmer-selectable hash instructions from a defined instruction set architecture (ISA). The processor may include a cryptographic unit that may receive instructions for execution. The instructions include hash instructions defined within the ISA. In addition, the hash instructions may be executable by the cryptographic unit to implement a hash that is compliant with one or more respective hash algorithm specifications. In response to receiving a particular hash instruction defined within the ISA, the cryptographic unit may retrieve a set of input data blocks from a predetermined set of architectural registers of the processor, and generate a hash value of the set of input data blocks according to a hash algorithm that corresponds to the particular hash instruction.
    Type: Application
    Filed: March 31, 2009
    Publication date: September 30, 2010
    Inventors: Christopher H. Olson, Jeffrey S. Brooks, Robert T. Golla
  • Patent number: 7778105
    Abstract: A memory with a write port configured for double-pump writes. The memory includes a first and second memory locations each having one or more bit cells, and one or more bit lines each coupled to corresponding ones of the bit cells. A write port is coupled to each of the bit lines. Selection circuitry, responsive to a first clock edge, latches first data from a first data path through the write port, and responsive to a second clock edge, latches second data from a second data path through the write port. A first pulse is generated during a first phase of the clock signal to cause writing of the first data into the first memory location. A second pulse is generated during a second phase of the clock signal to cause writing of the second data into the second memory location.
    Type: Grant
    Filed: March 17, 2008
    Date of Patent: August 17, 2010
    Assignee: Oracle America, Inc.
    Inventors: Robert T. Golla, Xiang Shan Li
  • Publication number: 20100169611
    Abstract: A system and method for reducing branch misprediction penalty. In response to detecting a mispredicted branch instruction, circuitry within a microprocessor identifies a predetermined condition prior to retirement of the branch instruction. Upon identifying this condition, the entire corresponding pipeline is flushed prior to retirement of the branch instruction, and instruction fetch is started at a corresponding address of an oldest instruction in the pipeline immediately prior to the flushing of the pipeline. The correct outcome is stored prior to the pipeline flush. In order to distinguish the mispredicted branch from other instructions, identification information may be stored alongside the correct outcome. One example of the predetermined condition being satisfied is in response to a timer reaching a predetermined threshold value, wherein the timer begins incrementing in response to the mispredicted branch detection and resets at retirement of the mispredicted branch.
    Type: Application
    Filed: December 30, 2008
    Publication date: July 1, 2010
    Inventors: Yuan C. Chou, Robert T. Golla, Mark A. Luttrell, Paul J. Jordan, Manish Shah
  • Patent number: 7747771
    Abstract: A method and mechanism for managing access to a plurality of registers in a processing device are contemplated. A processing device includes multiple nodes coupled to a ring bus, each of which include one or more registers which may be accessed by processes executing within the device. Also coupled to the ring bus is a ring control unit which is configured to initiate transactions targeted to nodes on the ring bus. Each of the nodes are configured receive and process bus transaction with a fixed latency whether or not the first transaction is targeted to the receiving node. The ring control unit is configured to periodically convey idle transactions on the ring bus in order to allow nodes responding to indeterminate transactions to gain access to the bus.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: June 29, 2010
    Assignee: Oracle America, Inc.
    Inventors: Manish Shah, Robert T. Golla, Mark A. Luttrell, Gregory F. Grohoski
  • Publication number: 20090231935
    Abstract: A memory with a write port configured for double-pump writes. The memory includes a first and second memory locations each having one or more bit cells, and one or more bit lines each coupled to corresponding ones of the bit cells. A write port is coupled to each of the bit lines. Selection circuitry, responsive to a first clock edge, latches first data from a first data path through the write port, and responsive to a second clock edge, latches second data from a second data path through the write port. A first pulse is generated during a first phase of the clock signal to cause writing of the first data into the first memory location. A second pulse is generated during a second phase of the clock signal to cause writing of the second data into the second memory location.
    Type: Application
    Filed: March 17, 2008
    Publication date: September 17, 2009
    Inventors: Robert T. Golla, Xiang Shan Li
  • Patent number: 7533248
    Abstract: A multithreaded processor including a shared functional unit. In one embodiment, the multithreaded processor includes a functional unit coupled to a multithreaded instruction source that may request access to use the functional unit. The multithreaded processor may also include a processing unit that is coupled to request access to use the functional unit. The functional unit may be configured to execute one of an instruction provided by the multithreaded instruction source and an operation provided by the processing unit in a given cycle dependent upon which of the multithreaded instruction source and the processing unit has a higher priority.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: May 12, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Robert T. Golla, Gregory F. Grohoski
  • Patent number: 7523330
    Abstract: A method and apparatus for controlling power consumption in a multi-threaded processor. In one embodiment, the processor includes at least one logic unit for processing instructions. The logic unit includes a plurality of positions, wherein each of the plurality of positions corresponds to at least one instruction thread. Clock signals may be provided to the logic unit via a clock gating unit. The clock gating unit is configured to inhibit a clock signal from being provided to a corresponding one of the thread positions when no instruction thread is active for that position. The inhibiting of the clock signal for an inactive thread position may reduce power consumption by the processor.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: April 21, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Robert T. Golla, Jeffrey S. Brooks, Christopher H. Olson
  • Patent number: 7519796
    Abstract: An apparatus and method for efficiently managing store buffer operations is described in connection with a multithreaded multiprocessor chip. A CMT processor keeps track of stores by maintaining two store counters in the instruction fetch unit (IFU). A speculative store counter in the IFU tracks stores in flight to the store buffer as well as stores already in the store buffer. A committed store counter in the IFU tracks the number of stores actually in the store buffer. The store buffer provides allocate and deallocate signals to accurately maintain the committed store counter. The IFU stops issuing stores to the store buffer once the speculative counter has reached a threshold value. Upon a flush, the IFU sets the speculative counter equal to the committed store counter. In this way, an efficient feedback mechanism is provided for preventing store buffer overflow that minimizes the store buffer size, operations time and power usage.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: April 14, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Robert T. Golla, Mark A. Luttrell
  • Patent number: 7509484
    Abstract: An apparatus and method for efficiently managing data cache load misses is described in connection with a multithreaded, pipelined multiprocessor chip. A CMT processor keeps track of load misses for each thread by issuing a load miss signal each time a load instruction to the data cache misses. A detection logic functionality in the IFU responds the load miss signal to determine if a valid instruction from the thread is at the one of the pipeline stages. If no instructions from the thread are detected in the pipeline, then no flush is required and the thread is placed in a wait state until the requested data is returned from higher order memory. If any instruction from the thread is detected in the pipeline, the thread is flushed and the instruction is re-fetched.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: March 24, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Robert T. Golla, Mark A. Luttrell
  • Patent number: 7478225
    Abstract: An apparatus and method to support pipelining of variable-latency instructions in a multithreaded processor. In one embodiment, a processor may include instruction fetch logic configured to issue a first and a second instruction from different ones of a plurality of threads during successive cycles. The processor may also include first and second execution units respectively configured to execute shorter-latency and longer-latency instructions and to respectively write shorter-latency or longer-latency instruction results to a result write port during a first or second writeback stage. The first writeback stage may occur a fewer number of cycles after instruction issue than the second writeback stage. The instruction fetch logic may be further configured to guarantee result write port access by the second execution unit during the second writeback stage by preventing the shorter-latency instruction from issuing during a cycle for which the first writeback stage collides with the second writeback stage.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: January 13, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Jeffrey S. Brooks, Christopher H. Olson, Robert T. Golla
  • Patent number: 7426630
    Abstract: In one embodiment, a processor comprises a register file, register management logic coupled to the register file, and at least two sources of window swap operations coupled to the register management logic. The register management logic is configured to control an interface to the register file to switch register windows in the register file in response to one or more window swap operations. The sources of window swap operations and the register management logic are configured to cooperate according to an arbitration scheme to arbitrate between conflicting window swap operations to be performed using the interface. In one particular implementation, for example, block signals may be used from higher priority sources to lower priority sources to block issuance of window swap operations by the lower priority sources.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: September 16, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Jike Chong, Robert T. Golla, Paul J. Jordan
  • Patent number: 7401206
    Abstract: An apparatus and method for fine-grained multithreading in a multipipelined processor core. According to one embodiment, a processor may include instruction fetch logic configured to assign a given one of a plurality of threads to a corresponding one of a plurality of thread groups, where each of the plurality of thread groups may comprise a subset of the plurality of threads, to issue a first instruction from one of the plurality of threads during one execution cycle, and to issue a second instruction from another one of the plurality of threads during a successive execution cycle. The processor may further include a plurality of execution units, each configured to execute instructions issued from a respective thread group.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: July 15, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Ricky C. Hetherington, Gregory F. Grohoski, Robert T. Golla
  • Patent number: 7383403
    Abstract: In one embodiment, a processor comprises a plurality of instruction buffers, an instruction cache coupled to supply instructions to the plurality of instruction buffers, and a cache miss unit coupled to the instruction cache. Each of the plurality of instruction buffers is configured to store instructions fetched from a respective thread of a plurality of threads. The cache miss unit is configured to monitor cache misses in the instruction cache. Particularly, the cache miss unit is configured to detect which of the plurality of threads experience a cache miss to a cache line. Responsive to a return of the cache line for storage in the instruction cache, the cache miss unit is configured to concurrently cause at least one instruction from the cache line to be stored in each of the plurality of instruction buffers that corresponds to one of the plurality of threads which experienced the cache miss to the cache line.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: June 3, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Jama I. Barreh, Manish Shah, Robert T. Golla
  • Patent number: 7350053
    Abstract: A method to communicate data is disclosed which includes communicating a virtual address to a translation lookaside buffer (TLB) and translating the virtual address to a physical address of a computer memory. The method also includes loading the physical address translated by the TLB into a register within a processor and transmitting the data from the physical address to a destination computing device.
    Type: Grant
    Filed: January 11, 2005
    Date of Patent: March 25, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Rabin A. Sugumar, Robert T. Golla, Paul J. Jordan
  • Patent number: 7343474
    Abstract: In one embodiment, a processor comprises a plurality of pipeline stages and a first circuit operable at a first pipeline stage of the plurality of pipeline stages. The first circuit is configured to maintain a plurality of program counters (PCs), each of which corresponds to one of a plurality of threads that the processor is configured to have concurrently in process with respect to the plurality of pipeline stages. The first circuit is configured to provide a first PC to a second pipeline stage of the plurality of pipeline stages. The first PC is derived from one of the plurality of PCs that corresponds to a first thread of the plurality of threads, and a first instruction entering the second pipeline stage is from the first thread.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: March 11, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Paul J. Jordan, Robert T. Golla, Jama I. Barreh
  • Patent number: 7330988
    Abstract: A method and apparatus for controlling power consumption in a processor. In one embodiment, a processor includes a pipeline. The pipeline includes logic for fetching instructions, issuing instructions, and executing instructions. The processor also includes a power management unit. The power management unit is configured to input M stalls into the pipeline every N instruction cycles (where M and N are integer value and wherein M is less than N).
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: February 12, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Robert T. Golla, Ricky C. Hetherington
  • Patent number: 7216216
    Abstract: In one embodiment, a processor is configured to execute a window swap instruction. The processor comprises a register file (that comprises a plurality of registers) and first and second execution units coupled to the register file. A first pipeline associated with the first execution unit has a first number of pipeline stages, and a second pipeline associated with the second execution unit has a second number of pipeline stages. The first execution unit is configured to change the current register window from the first register window to the second register window in the register file in response to the instruction. The second execution unit is configured to perform an operation defined by the instruction and write the result to the register file. The second number of pipeline stages exceeds the first number, whereby the second register window is established in the register file prior to writing the result.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: May 8, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Christopher H. Olson, Jeffrey S. Brooks, Robert T. Golla
  • Patent number: 7185178
    Abstract: In one embodiment, a processor comprises an instruction cache and a fetch generator circuit coupled thereto. The fetch generator circuit is configured to generate at least one fetch request to the instruction cache for at least one of the plurality of threads. The fetch generator circuit is also configured to monitor for a plurality of conditions for each thread, wherein each of the plurality of conditions defined to inhibit the thread from being fetched. The fetch generator circuit is configured to speculatively generate a first fetch request for a first thread of the plurality of threads if each thread is inhibited from fetching and the first thread is inhibited from fetching only due to a first predetermined condition of the plurality of conditions. In one particular implementation, the first predetermined condition is a lack of room in a corresponding one of a plurality of instruction buffers.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: February 27, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Jama I. Barreh, Robert T. Golla
  • Publication number: 20040150449
    Abstract: A high-speed, noise-safe, non-inverting flip-flop (“flop”) is provided. In the flop, a buffer is used to isolate a data input terminal from the remainder of the flop circuitry to prevent erroneous operation of the flop circuitry. Also, a slave node is connected to a master node to avoid the need for an additional buffer on a data signal critical path, thus preserving the high-speed of the flop circuitry. Overlapped clock signals are used to control data signal transmission to the master node and the slave node. The overlapped clock signals allow the buffer used to isolate the data input terminal to also be used to drive the data signal through the master node to the slave node.
    Type: Application
    Filed: January 30, 2003
    Publication date: August 5, 2004
    Applicant: Sun Microsystems, Inc.
    Inventors: Christopher M. Durham, Hang B. Lauv, Robert T. Golla
  • Patent number: 5809323
    Abstract: A superscalar processor and method for executing fixed-point instructions within a superscalar processor are disclosed. The superscalar processor has a memory and multiple execution units, including a fixed point execution unit (FXU) and a non-fixed point execution unit (non-FXU). According to the present invention, a set of instructions to be executed are fetched from among a number of instructions stored within memory. A determination is then made if n instructions, the maximum number possible, can be dispatched to the multiple execution units during a first processor cycle if fixed point arithmetic and logical instructions are dispatched only to the FXU. If so, n instructions are dispatched to the multiple execution units for execution.
    Type: Grant
    Filed: September 19, 1995
    Date of Patent: September 15, 1998
    Assignee: International Business Machines Corporation
    Inventors: Lee E. Eisen, Robert T. Golla, Soummya Mallick, Sung-Ho Park, Rajesh B. Patel, Michael Putrino