Patents by Inventor Gregory F. Grohoski

Gregory F. Grohoski 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: 20100325394
    Abstract: A system and method for balancing instruction loads between multiple execution units are disclosed. One or more execution units may be represented by a slot configured to accept instructions on behalf of the execution unit(s). A decode unit may assign instructions to a particular slot for subsequent scheduling for execution. Slot assignments may be made based on an instruction's type and/or on a history of previous slot assignments. A cumulative slot assignment history may be maintained in a bias counter, the value of which reflects the bias of previous slot assignments. Slot assignments may be determined based on the value of the bias counter, in order to balance the instruction load across all slots, and all execution units. The bias counter may reflect slot assignments made only within a desired historical window. A separate data structure may store data reflecting the actual slot assignments made during the desired historical window.
    Type: Application
    Filed: June 23, 2009
    Publication date: December 23, 2010
    Inventors: Robert T. Golla, Gregory F. Grohoski
  • Publication number: 20100299499
    Abstract: Systems and methods for efficient dynamic utilization of shared resources in a processor. A processor comprises a front end pipeline, an execution pipeline, and a commit pipeline, wherein each pipeline comprises a shared resource with entries configured to be allocated for use in each clock cycle by each of a plurality of threads supported by the processor. To avoid starvation of any active thread, the processor further comprises circuitry configured to ensure each active thread is able to allocate at least a predetermined quota of entries of each shared resource. Each pipe stage of a total pipeline for the processor may include at least one dynamically allocated shared resource configured not to starve any active thread. Dynamic allocation of shared resources between a plurality of threads may yield higher performance over static allocation. In addition, dynamic allocation may require relatively little overhead for activation/deactivation of threads.
    Type: Application
    Filed: September 30, 2009
    Publication date: November 25, 2010
    Inventors: Robert T. Golla, Gregory F. Grohoski
  • Publication number: 20100257338
    Abstract: Systems and methods for efficient instruction support of an multiple features for opcodes of an instruction set. A processor detects a fetched instruction of a computer program comprises an opcode corresponding to a plurality of functions. Each function corresponds to a different type of operation. The processor determines the received instruction corresponds to a feature requested by the computer program, such as a cryptographic algorithm. A determination is made as to whether hardware support exists for the feature. If hardware support exists for the feature, the instruction is executed on-chip by the hardware. Otherwise, software performs the operation corresponding to the instruction.
    Type: Application
    Filed: April 7, 2009
    Publication date: October 7, 2010
    Inventors: Lawrence A. Spracklen, Gregory F. Grohoski, Christopher H. Olson, Robert T. Golla
  • Publication number: 20100250965
    Abstract: A processor including instruction support for implementing the Advanced Encryption Standard (AES) block cipher algorithm may issue, for execution, programmer-selectable instructions from a defined instruction set architecture (ISA). The processor may include a cryptographic unit that may receive instructions for execution. The instructions include one or more AES instructions defined within the ISA. In addition, the AES instructions may be executable by the cryptographic unit to implement portions of an AES cipher that is compliant with Federal Information Processing Standards Publication 197 (FIPS 197). In response to receiving a first AES encryption round instruction defined within the ISA, the cryptographic unit may perform an encryption round of the AES cipher on a first group of columns of cipher state having a plurality of rows and columns. A maximum number of columns included in the first group may be fewer than all of the columns of the cipher state.
    Type: Application
    Filed: March 31, 2009
    Publication date: September 30, 2010
    Inventors: Christopher H. Olson, Gregory F. Grohoski, Lawrence A. Spracklen
  • Publication number: 20100246815
    Abstract: A processor including instruction support for implementing the Kasumi block cipher algorithm may issue, for execution, programmer-selectable instructions from a defined instruction set architecture (ISA). The processor may include a cryptographic unit that may receive instructions for execution. The instructions include one or more Kasumi instructions defined within the ISA. In addition, the Kasumi instructions may be executable by the cryptographic unit to implement portions of a Kasumi cipher that is compliant with 3rd Generation Partnership Project (3GPP) Technical Specification TS 35.202 version 8.0.0. In response to receiving a Kasumi FL( )-operation instruction defined within the ISA, the cryptographic unit may perform an FL( ) operation, as defined by the Kasumi cipher, upon a data input operand and a subkey operand in which the data input operand and subkey operand may be specified by the Kasumi FL( )-operation instruction.
    Type: Application
    Filed: March 31, 2009
    Publication date: September 30, 2010
    Inventors: Christopher H. Olson, Gregory F. Grohoski, Lawrence A. Spracklen
  • Publication number: 20100250964
    Abstract: A processor including instruction support for implementing the Camellia block cipher algorithm may issue, for execution, programmer-selectable instructions from a defined instruction set architecture (ISA). The processor may include a cryptographic unit that may receive instructions for execution. The instructions include one or more Camellia instructions defined within the ISA. In addition, the Camellia instructions may be executable by the cryptographic unit to implement portions of a Camellia cipher that is compliant with Internet Engineering Task Force (IETF) Request For Comments (RFC) 3713. In response to receiving a Camellia F( )-operation instruction defined within the ISA, the cryptographic unit may perform an F( ) operation, as defined by the Camellia cipher, upon a data input operand and a subkey operand, in which the data input operand and subkey operand may be specified by the Camellia F( )-operation instruction.
    Type: Application
    Filed: March 31, 2009
    Publication date: September 30, 2010
    Inventors: Christopher H. Olson, Gregory F. Grohoski, Lawrence A. Spracklen
  • Publication number: 20100246814
    Abstract: A processor including instruction support for implementing the Data Encryption Standard (DES) block cipher algorithm may issue, for execution, programmer-selectable instructions from a defined instruction set architecture (ISA). The processor may include a cryptographic unit that may receive instructions for execution. The instructions include one or more DES instructions defined within the ISA. In addition, the DES instructions may be executable by the cryptographic unit to implement portions of an DES cipher that is compliant with Federal Information Processing Standards Publication 46-3 (FIPS 46-3). In response to receiving a DES key expansion instruction defined within the ISA, the cryptographic unit may generate one or more expanded cipher keys of the DES cipher key schedule from an input key.
    Type: Application
    Filed: March 31, 2009
    Publication date: September 30, 2010
    Inventors: Christopher H. Olson, Gregory F. Grohoski, Lawrence A. Spracklen
  • Patent number: 7795899
    Abstract: Systems and methods for enabling on-chip features via efuses. A system comprises an electronic fuse (Efuse) array (EFA) coupled to each features capability register (FCR) within an instantiated computational block. The EFA comprises a plurality of rows wherein programming an row comprises blowing one or more Efuses of the row. A valid row comprises programmed Efuses corresponding to one or more on-chip enabled features. The EFA is further configured to prevent enabling of disabled on-chip features from occurring subsequent to a predetermined point in time, such as the time of shipping the chip to the field for use by end-users, by establishing a particular default state for electronic fuses and rendering unusable any unprogrammed entries of the EFA. In one embodiment, some features correspond to on-chip hardware cryptographic acceleration.
    Type: Grant
    Filed: April 8, 2009
    Date of Patent: September 14, 2010
    Assignee: Oracle America, Inc.
    Inventors: Gregory F. Grohoski, Christopher H. Olson, Thomas Alan Ziaja, Lawrence A. Spracklen
  • Patent number: 7779238
    Abstract: A system and method for precisely identifying an instruction causing a performance-related event is disclosed. The instruction may be detected while in a pipeline stage of a microprocessor preceding a writeback stage and the microprocessor's architectural state may not be updated until after information identifying the instruction is captured. The instruction may be flushed from the pipeline, along with other instructions from the same thread. A hardware trap may be taken when the instruction is detected and/or when an event counter overflows or is within a given range of overflowing. A software trap handler may capture and/or log information identifying the instruction, such as one or more extended address elements, before returning control and initiating a retry of the instruction. The captured and/or logged information may be stored in an event space database usable by a data space profiler to identify performance bottlenecks in the application containing the instruction.
    Type: Grant
    Filed: October 30, 2006
    Date of Patent: August 17, 2010
    Assignee: Oracle America, Inc.
    Inventors: Nicolai Kosche, Gregory F. Grohoski, Paul J. Jordan
  • 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
  • Patent number: 7720219
    Abstract: An apparatus and method for implementing a hash algorithm word buffer. In one embodiment, a cryptographic unit may include hash logic configured to compute a hash value of a data block according to a hash algorithm, where the hash algorithm includes a plurality of iterations, and where the data block includes a plurality of data words. The cryptographic unit may further include a word buffer comprising a plurality of data word positions and configured to store the data block during computing by the hash logic, where subsequent to the hash logic computing one of the iterations of the hash algorithm, the word buffer is further configured to linearly shift the data block by one or more data word positions according to the hash algorithm. The hash algorithm may be dynamically selectable from a plurality of hash algorithms.
    Type: Grant
    Filed: October 19, 2004
    Date of Patent: May 18, 2010
    Assignee: Oracle America, Inc.
    Inventors: Christopher H. Olson, Leonard D. Rarick, Gregory F. Grohoski
  • Patent number: 7711955
    Abstract: An apparatus and method for cryptographic key expansion. According to a first embodiment, a cryptographic unit may include key storage configured to store an expanded set of cipher keys for a cipher algorithm, and a key expansion pipeline comprising a plurality of pipeline stages. During a key expansion mode of operation, each pipeline stage may be configured to perform a corresponding step of generating a member of the expanded set of cipher keys according to a key expansion algorithm. During a cipher mode of operation, a portion of the key expansion pipeline may be configured to perform a step of the cipher algorithm.
    Type: Grant
    Filed: September 13, 2004
    Date of Patent: May 4, 2010
    Assignee: Oracle America, Inc.
    Inventors: Christopher H. Olson, Leonard D. Rarick, Gregory F. Grohoski
  • Patent number: 7702887
    Abstract: A method and mechanism for monitoring events in a processing system. A performance monitoring mechanism includes is configured to store a count of events in an event counter. Periodically, the count stored in the event counter is updated to a new count. If the new count equals a predetermined value, an indication that the count equals the predetermined value is conveyed. If the new count does not equal the predetermined value, but is within a given epsilon of the predetermined value and the occurrence of a corresponding event is detected, an indication that the count equals the predetermined value is conveyed. The mechanism is further configured to suppress event counts which correspond to mis-speculations.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: April 20, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Gregory F. Grohoski, Paul J. Jordan, Yue Chang
  • Patent number: 7685354
    Abstract: A multiple-core processor providing flexible mapping of processor cores to cache banks. In one embodiment, a processor may include a cache including a number of cache banks. The processor may further include a number of processor cores configured to access the cache banks, as well as core/bank mapping logic coupled to the cache banks and processor cores. The core/bank mapping logic may be configurable to map a cache bank select portion of a memory address specified by a given one of the processor cores to any one of the cache banks.
    Type: Grant
    Filed: February 23, 2005
    Date of Patent: March 23, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Ricky C. Hetherington, Manish K. Shah, Gregory F. Grohoski, Bikram Saha
  • Patent number: 7684563
    Abstract: An apparatus and method for implementing a unified hash algorithm pipeline. In one embodiment, a cryptographic unit may include hash logic configured to compute a hash value of a data block according to a hash algorithm, where the hash algorithm is dynamically selectable from a plurality of hash algorithms, and where the hash logic comprises a plurality of pipeline stages each configured to compute a portion of the hash algorithm. The cryptographic unit may further include a word buffer configured to store the data block during computing by the hash logic.
    Type: Grant
    Filed: October 19, 2004
    Date of Patent: March 23, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Christopher H. Olson, Leonard D. Rarick, Gregory F. Grohoski
  • Publication number: 20090327646
    Abstract: In one embodiment, a system comprises one or more registers configured to store a plurality of values that identify a virtual address space (collectively a tag), a translation lookaside buffer (TLB), and a control unit coupled to the TLB and the one or more registers. The control unit is configured to detect whether or not the tag has changed and in response to a change in the tag, map the changed tag to an identifier having fewer bits than the total number of bits in the tag, and provide the current identifier to the TLB. The TLB is configured to detect a hit/miss in response to the identifier. A similar method is also contemplated.
    Type: Application
    Filed: April 30, 2008
    Publication date: December 31, 2009
    Inventors: Paul J. Jordan, Manish K. Shah, Gregory F. Grohoski
  • Patent number: 7620821
    Abstract: A processor including general-purpose and cryptographic functionality, in which cryptographic operations are visible to user-specified software. According to one embodiment, a processor may include instruction execution logic configured to execute instructions specified by a user of the processor, where the instructions are compliant with a general-purpose instruction set architecture. The processor may further include a cryptographic functional unit configured to implement a plurality of cryptographic operations, and further configured to process the cryptographic operations independently of the instruction execution logic. A subset of the instructions may be executable to cause individual ones of the cryptographic operations to be processed by the cryptographic functional unit.
    Type: Grant
    Filed: February 24, 2005
    Date of Patent: November 17, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Gregory F. Grohoski, Christopher H. Olson, Leonard D. Rarick
  • Patent number: 7570760
    Abstract: An apparatus and method for implementing a block cipher algorithm. In one embodiment, a cryptographic unit configured to implement a block cipher algorithm may include state storage configured to store cipher state, where the cipher state includes a plurality of rows and a plurality of columns. The cryptographic unit may further include a cipher pipeline comprising a plurality of pipeline stages, where each pipeline stage is configured to perform a corresponding step of the block cipher algorithm on the cipher state, and where a given one of the pipeline stages is configured to concurrently process fewer than all of the columns of the cipher state.
    Type: Grant
    Filed: September 13, 2004
    Date of Patent: August 4, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Christopher H. Olson, Gregory F. Grohoski
  • 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: 7454666
    Abstract: A method for tracing of instructions executed by a processor is provided which includes providing a type of instruction to be traced and tracing at least one instruction corresponding to the type of instruction. The method further includes storing data without stopping from the tracing into a memory until the memory is full.
    Type: Grant
    Filed: April 7, 2005
    Date of Patent: November 18, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Paul J. Jordan, Joseph T. Rahmeh, Gregory F. Grohoski