Patents by Inventor Ricky C. Hetherington

Ricky C. Hetherington 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: 9208084
    Abstract: A computer system with flash memory in the main memory hierarchy is disclosed. In an embodiment, the computer system includes at least one processor, a memory management unit coupled to the at least one processor, and a random access memory (RAM) coupled to the memory management unit. The computer system may also include a flash memory coupled to the memory management unit, wherein the computer system is configured to store at least a subset of a plurality of pages in the flash memory during operation. Responsive to a page fault, the memory management unit may determine, without invoking an I/O driver, if a requested page associated with the page fault is stored in the flash memory and further configured to, if the page is stored in the flash memory, transfer the page into RAM.
    Type: Grant
    Filed: June 29, 2009
    Date of Patent: December 8, 2015
    Assignee: Oracle America, Inc.
    Inventors: Sanjiv Kapil, Ricky C. Hetherington
  • Patent number: 8180981
    Abstract: System and method for using flash memory in a memory hierarchy. A computer system includes a processor coupled to a memory hierarchy via a memory controller. The memory hierarchy includes a cache memory, a first memory region of random access memory coupled to the memory controller via a first buffer, and an auxiliary memory region of flash memory coupled to the memory controller via a flash controller. The first buffer and the flash controller are coupled to the memory controller via a single interface. The memory controller receives a request to access a particular page in the first memory region. The processor detects a page fault corresponding to the request and in response, invalidates cache lines in the cache memory that correspond to the particular page, flushes the invalid cache lines, and swaps a page from the auxiliary memory region to the first memory region.
    Type: Grant
    Filed: May 15, 2009
    Date of Patent: May 15, 2012
    Assignee: Oracle America, Inc.
    Inventors: Sanjiv Kapil, Ricky C. Hetherington
  • Patent number: 7873776
    Abstract: A multiple-core processor with support for multiple virtual processors. In one embodiment, a processor may include a cache including a number of cache banks, a number of processor cores and core/bank mapping logic coupled to the cache banks and processor cores. During a first mode of processor operation, each of the processor cores may be configurable to access any of the cache banks, and during a second mode of processor operation, the core/bank mapping logic may be configured to implement a plurality of virtual processors within the processor. A first virtual processor may include a first subset of the processor cores and a first subset of the banks, and a second virtual processor may include a second subset of the processor cores and a second subset of the cache banks. Subsets of processor cores and cache banks included in the first and second virtual processors may be distinct.
    Type: Grant
    Filed: February 23, 2005
    Date of Patent: January 18, 2011
    Assignee: Oracle America, Inc.
    Inventors: Ricky C. Hetherington, Bikram Saha
  • Publication number: 20100332727
    Abstract: A computer system with flash memory in the main memory hierarchy is disclosed. In an embodiment, the computer system includes at least one processor, a memory management unit coupled to the at least one processor, and a random access memory (RAM) coupled to the memory management unit. The computer system may also include a flash memory coupled to the memory management unit, wherein the computer system is configured to store at least a subset of a plurality of pages in the flash memory during operation. Responsive to a page fault, the memory management unit may determine, without invoking an I/O driver, if a requested page associated with the page fault is stored in the flash memory and further configured to, if the page is stored in the flash memory, transfer the page into RAM.
    Type: Application
    Filed: June 29, 2009
    Publication date: December 30, 2010
    Inventors: Sanjiv Kapil, Ricky C. Hetherington
  • Publication number: 20100293420
    Abstract: System and method for using flash memory in a memory hierarchy. A computer system includes a processor coupled to a memory hierarchy via a memory controller. The memory hierarchy includes a cache memory, a first memory region of random access memory coupled to the memory controller via a first buffer, and an auxiliary memory region of flash memory coupled to the memory controller via a flash controller. The first buffer and the flash controller are coupled to the memory controller via a single interface. The memory controller receives a request to access a particular page in the first memory region. The processor detects a page fault corresponding to the request and in response, invalidates cache lines in the cache memory that correspond to the particular page, flushes the invalid cache lines, and swaps a page from the auxiliary memory region to the first memory region.
    Type: Application
    Filed: May 15, 2009
    Publication date: November 18, 2010
    Inventors: Sanjiv Kapil, Ricky C. Hetherington
  • Patent number: 7716521
    Abstract: A multiple-core, multithreaded processor including a flexible error steering mechanism. An integrated circuit may include processor cores. Each processor core is associated with a respective number of threads and is configured to issue a first instruction from one of the threads during one execution cycle and a second instruction from another one of the threads during a successive execution cycle. An error processing unit may be coupled to the processor cores and configured to detect an error condition corresponding to a data element external to the processor cores. In response to detecting the error condition, the error processing unit may convey an indication of the error to a selected processor core dependent upon an identifier of the selected core. The error indication may also include an identifier of a selected thread executable on the selected processor core. The identifiers of the selected core and the selected thread may be programmable.
    Type: Grant
    Filed: May 6, 2005
    Date of Patent: May 11, 2010
    Assignee: Oracle America, Inc.
    Inventors: Hunter S. Donahue, Ricky C. Hetherington, Jimmy K. Lau
  • 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: 7644221
    Abstract: A processor including an integrated system interface unit configured to manage multiple I/O interfaces and multiple protocols. A processor includes a plurality of processing cores, a cache comprising a plurality of banks, and a system interface unit coupled to the processing cores and the cache. The system interface unit includes an inbound unit configured to receive inbound transactions from a first I/O unit and a second I/O unit, and an outbound unit configured to convey outbound transactions to either the first I/O unit or the second I/O unit. Each of the first and second I/O units is configured to support different protocols. Prior to conveying transaction data to the system interface, the first I/O unit and second I/O units reformat transaction data to conform to a common format. The system interface receives and stores transaction data in either queues dedicated for cacheable transactions or queues dedicated for non-cacheable transactions.
    Type: Grant
    Filed: April 11, 2005
    Date of Patent: January 5, 2010
    Assignee: Sun Microsystems, Inc.
    Inventors: Paul G. Chan, Ricky C. Hetherington
  • Patent number: 7587658
    Abstract: An error detecting and correcting method and mechanism. An error correcting code for data is utilized wherein a special syndrome pattern is used to indicate corresponding data includes a previously detected uncorrectable error. In response to receiving data and corresponding first check bits from a storage device, new check bits corresponding to the read data are generated. Based upon the read check bits and newly generated check bits, a syndrome is generated. If an uncorrectable error is detected, the newly generated check bits are inverted prior to be stored. Subsequent readers of the stored data will generate a syndrome which corresponds to the predetermined pattern and determine that the data includes a previously detected uncorrectable error. Data including an error corresponding to an previously detected uncorrectable error may be discarded and no error reported.
    Type: Grant
    Filed: January 3, 2005
    Date of Patent: September 8, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Ye Tong, Ricky C. Hetherington
  • Patent number: 7529894
    Abstract: In one embodiment, a node comprises at least one memory control unit configured to couple to an industry standard memory interface for coupling to a memory; and at least one coherence unit configured to transmit and receive coherence messages to and from other nodes to maintain coherent memory among the nodes. The coherence messages are conveyed on a second interface to which the coherence unit is coupled, wherein the second interface includes at least a physical layer as specified by the industry standard memory interface.
    Type: Grant
    Filed: August 17, 2005
    Date of Patent: May 5, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Ricky C. Hetherington, Stephen E. Phillips
  • Patent number: 7487327
    Abstract: A processor employing device-specific memory address translation. In one embodiment, a processor may include a device interface configured to receive a memory access request from an input/output (I/O) device, where the request specifies a virtual memory address and a first requestor identifier (ID) that identifies the I/O device. The processor may also include an I/O memory management unit coupled to the device interface and configured to determine whether a virtual-to-physical memory address translation corresponding to the virtual memory address is stored within an I/O memory translation buffer. The I/O memory management unit may be further configured to determine whether a second requestor ID stored within the I/O memory translation buffer and corresponding to the memory address translation matches the first requestor ID. If the first and second requestor IDs do not match, the I/O memory management unit may disallow the memory access request and to signal an error condition.
    Type: Grant
    Filed: June 1, 2005
    Date of Patent: February 3, 2009
    Assignee: Sun Microsystems, Inc.
    Inventors: Bruce J. Chang, Ricky C. Hetherington, Brian J. McGee, David M. Kahn, Ashley N. Saulsbury
  • 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: 7398360
    Abstract: In one embodiment, a node comprises a plurality of processor cores, coherency control circuitry coupled to the plurality of processor cores, and at least one coherence unit coupled to the coherency control circuitry. Each processor core is configured to have a plurality of threads active and each processor core includes at least one first level cache. The coherency control circuitry is configured to manage intranode coherency among the plurality of processor cores. The coherency unit is configured to couple to an external interface of the node, and is configured to transmit and receive coherence messages on the external interface to maintain coherency with at least one other node having one or processor cores and a coherence unit. In another embodiment, a system comprises an interconnect and a plurality of nodes coupled to the interconnect.
    Type: Grant
    Filed: August 17, 2005
    Date of Patent: July 8, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Ricky C. Hetherington, Stephen E. Phillips
  • Patent number: 7370243
    Abstract: A method and mechanism for error recovery in a processor. A multithreaded processor is configured to utilize software for hardware detected machine errors. Rather than correcting and clearing the detected errors, hardware is configured to report the errors precisely. Both program-related exceptions and hardware errors are detected and, without being corrected by the hardware, flow down the pipeline to a trap unit where they are prioritized and handled via software. The processor assigns each instruction a thread ID and error information as it follows the pipeline. The trap unit records the error by using the thread ID of the instruction and the pipelined error information in order to determine which ESR receives the information and what to store in the ESR. A trap handling routine is then initiated to facilitate error recovery.
    Type: Grant
    Filed: June 30, 2004
    Date of Patent: May 6, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Gregory F. Grohoski, Ricky C. Hetherington, Paul J. Jordan, Robert M. Maier
  • Patent number: 7353340
    Abstract: In one embodiment, a node comprises at least one processor core and a plurality of coherence units. The processor core is configured to generate an address to access a memory location. The address maps to a first coherence plane of a plurality of coherence planes. Coherence activity is performed within each coherence plane independent of other coherence planes, and a mapping of the address space to the coherence planes is independent of a physical location of the addressed memory in a distributed system memory. Each coherence unit corresponds to a respective coherence plane and is configured to manage coherency for the node and for the respective coherence plane. The coherence units operate independent of each other, and a first coherence unit corresponding to the first coherence plane is coupled to receive the address if external coherency activity is needed to complete the access to the memory location.
    Type: Grant
    Filed: August 17, 2005
    Date of Patent: April 1, 2008
    Assignee: Sun Microsystems, Inc.
    Inventors: Ricky C. Hetherington, Stephen E. Phillips
  • 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: 7240160
    Abstract: A multiple-core processor providing a flexible cache directory scheme. In one embodiment, a processor may include a second-level cache including a number of cache banks and a respective number of cache directories corresponding to the 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 second-level cache and the processor cores. Each of the processor cores may include a respective first-level cache. Each of the respective cache directories may be configured to store directory state information associated with portions of respective first-level caches of at least two of the processor cores. If fewer than all of the cache banks are enabled, the core/bank mapping logic may be configured to completely map directory state information associated with each respective first-level cache of enabled processor cores to respective cache directories associated with enabled cache banks.
    Type: Grant
    Filed: February 23, 2005
    Date of Patent: July 3, 2007
    Assignee: Sun Microsystems, Inc.
    Inventors: Ricky C. Hetherington, Bikram Saha
  • Patent number: 6684299
    Abstract: A multi-level cache and method for operation of a multi-level cache generating multiple cache system accesses simultaneously. Each access request includes an address identifying a memory location having data that is a target of the access. A insertion pointer inserts each access request into an entry in a memory scheduling window. Each entry is marked as valid when that entry is ready to be applied to a first cache level. A picker picks valid entries from the memory scheduling window by pointing to the picked entry and applying the address therein to the first cache level. The picking occurs in a free-running mode regardless of whether the accesses hit in the first cache level. A second cache level, receives accesses that have missed in the first cache level. A resource monitor in the second cache level determines when a predetermined number of resources are committed to servicing the accesses that have missed in the first cache level.
    Type: Grant
    Filed: February 28, 2001
    Date of Patent: January 27, 2004
    Assignee: Sun Microsystems, Inc.
    Inventors: Ricky C. Hetherington, Thomas M. Wicki
  • Patent number: 6484240
    Abstract: An apparatus and method for expediting the processing of requests in a multiprocessor shared memory system. In a multiprocessor shared memory system, requests can be processed in any order provided two rules are followed. First, no request that grants access rights to a processor can be processed before an older request that revokes access rights from the processor. Second, all requests that reference the same cache line are processed in the order in which they arrive. In this manner, requests can be processed out-of-order to allow cache-to-cache transfers to be accelerated. In particular, foreign requests that require a processor to provide data can be processed by that processor before older local requests that are awaiting data. In addition, newer local requests can be processed before older local requests. As a result, the apparatus and method described herein may advantageously increase performance in multiprocessor shared memory systems by reducing latencies associated with a cache consistency protocol.
    Type: Grant
    Filed: July 30, 1999
    Date of Patent: November 19, 2002
    Assignee: Sun Microsystems, Inc.
    Inventors: Robert Cypher, Ricky C. Hetherington, Belliappa Kuttanna
  • Patent number: 6430654
    Abstract: A multi-level cache and method for operation therefore includes a first non-blocking cache receiving access requests from a device in a processor, and a first miss queue storing entries corresponding to access requests not serviced by the first non-blocking cache. A second non-blocking cache is provided for receiving access requests from the first miss queue, and a second miss queue is provided for storing entries corresponding to access requests not serviced by the second non-blocking cache. Other queueing structures such as a victim queue and a write queue are provided depending on the particular structure of the cache level within the multilevel cache hierarchy.
    Type: Grant
    Filed: January 21, 1998
    Date of Patent: August 6, 2002
    Assignee: Sun Microsystems, Inc.
    Inventors: Sharad Mehrotra, Ricky C. Hetherington