Patents by Inventor Richard E. Kessler

Richard E. Kessler 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: 6654858
    Abstract: A computer system has a plurality of processors wherein each processor preferably has its own cache memory. Each processor or group of processors may have a memory controller that interfaces to a main memory. Each main memory includes a “directory” that maintains the directory coherence state of each block of that memory. One or more of the processors are members of a “local” group of processors. Processors outside a local group are referred to as “remote” processors with respect to that local group. Whenever a remote processor performs a memory reference for a particular block of memory, the processor that maintains the directory for that block normally updates the directory to reflect that the remote processor now has exclusive ownership of the block. However, memory references between processors within a local group do not result in directory writes.
    Type: Grant
    Filed: August 31, 2000
    Date of Patent: November 25, 2003
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: David H. Asher, Brian Lilly, Richard E. Kessler, Michael Bertone
  • Patent number: 6651144
    Abstract: A computer system includes an external unit governing a cache which generates a set-dirty request as a function of a coherence state of a block in the cache to be modified. The external unit modifies the block of the cache only if an acknowledgment granting permission is received from a memory management system responsive to the set-dirty request. The memory management system receives the set-dirty request, determines the acknowledgment based on contents of the plurality of caches and the main memory according to a cache protocol and sends the acknowledgment to the external unit in response to the set-dirty request. The acknowledgment will either grant permission or deny permission to set the block to the dirty state.
    Type: Grant
    Filed: June 18, 1998
    Date of Patent: November 18, 2003
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Rahul Razdan, James B. Keller, Richard E. Kessler
  • Publication number: 20030204697
    Abstract: A computer system has a memory controller that includes read buffers coupled to a plurality of memory channels. The memory controller advantageously eliminates the inter-channel skew caused by memory modules being located at different distances from the memory controller. The memory controller preferably includes a channel interface and synchronization logic circuit for each memory channel. This circuit includes read and write buffers and load and unload pointers for the read buffer. Unload pointer logic generates the unload pointer and load pointer logic generates the load pointer. The pointers preferably are free-running pointers that increment in accordance with two different clock signals. The load pointer increments in accordance with a clock generated by the memory controller but that has been routed out to and back from the memory modules.
    Type: Application
    Filed: May 20, 2003
    Publication date: October 30, 2003
    Inventors: Richard E. Kessler, Peter J. Bannon, Maurice B. Steinman, Scott E. Breach, Allen J. Baum, Gregg A. Bouchard
  • Patent number: 6636955
    Abstract: A computer system has a memory controller that includes read buffers coupled to a plurality of memory channels. The memory controller advantageously eliminates the inter-channel skew caused by memory modules being located at different distances from the memory controller. The memory controller preferably includes a channel interface and synchronization logic circuit for each memory channel. This circuit includes read and write buffers and load and unload pointers for the read buffer. Unload pointer logic generates the unload pointer and load pointer logic generates the load pointer. The pointers preferably are free-running pointers that increment in accordance with two different clock signals. The load pointer increments in accordance with a clock generated by the memory controller but that has been routed out to and back from the memory modules. The unload pointer increments in accordance with a clock generated by the computer system itself.
    Type: Grant
    Filed: August 31, 2000
    Date of Patent: October 21, 2003
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Richard E. Kessler, Peter J. Bannon, Maurice B. Steinman, Scott E. Breach, Allen J. Baum, Gregg A. Bouchard
  • Publication number: 20030196047
    Abstract: A system and method is disclosed to maintain the coherence of shared data in cache and memory contained in the nodes of a multiprocessing computer system. The distributed multiprocessing computer system contains a number of processors each connected to main memory. A processor in the distributed multiprocessing computer system is identified as a Home processor for a memory block if it includes the original memory block and a coherence directory for the memory block in its main memory. An Owner processor is another processor in the multiprocessing computer system that includes a copy of the Home processor memory block in a cache connected to its main memory. Whenever an Owner processor is present for a memory block, it is the only processor in the distributed multiprocessing computer system to contain a copy of the Home processor memory block.
    Type: Application
    Filed: March 31, 2003
    Publication date: October 16, 2003
    Inventors: Richard E. Kessler, Kourosh Gharachorloo, David H. Asher
  • Patent number: 6633960
    Abstract: A system and method is disclosed to maintain the coherence of shared data in cache and memory contained in the nodes of a multiprocessing computer system. The distributed multiprocessing computer system contains a number of processors each connected to main memory. A processor in the distributed multiprocessing computer system is identified as a Home processor for a memory block if it includes the original memory block and a coherence directory for the memory block in its main memory. An Owner processor is another processor in the multiprocessing computer system that includes a copy of the Home processor memory block in a cache connected to its main memory. Whenever an Owner processor is present for a memory block, it is the only processor in the distributed multiprocessing computer system to contain a copy of the Home processor memory block.
    Type: Grant
    Filed: August 31, 2000
    Date of Patent: October 14, 2003
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Richard E. Kessler, Kourosh Gharachorloo, David H. Asher
  • Patent number: 6622225
    Abstract: A computer system includes a memory controller interfacing the processor to a memory system. The memory controller supports a memory system with a plurality of memory devices, with multiple memory banks in each memory device. The memory controller supports simultaneous memory accesses to different memory banks. Memory bank conflicts are avoided by examining each transaction before it is loaded in the memory transaction queue. On a first clock cycle, the new pending memory request is transferred from a pending request queue to a memory mapper. On the subsequent clock cycle, the memory mapper formats the pending memory request into separate signals identifying the DEVICE, BANK, ROW and COLUMN to be accessed by the pending transaction. In the next clock cycle, the DEVICE and BANK signals are compared with every entry in the memory transaction queue to determine if a bank conflict exists. If so, the new memory request is rejected and recycled to the pending request queue.
    Type: Grant
    Filed: August 31, 2000
    Date of Patent: September 16, 2003
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Richard E. Kessler, Michael S. Bertone, Michael C. Braganza, Gregg A. Bouchard, Maurice B. Steinman
  • Publication number: 20030126358
    Abstract: A system is disclosed in which an on-chip logic analyzer (OCLA) includes a loop detector logic which receives incoming program counter (PC) data and detects when software loops exist. When a software loop is detected, the loop detector may be configured to store the first loop in memory, while all subsequent iterations are not stored, thus saving space in memory which would otherwise be consumed. The loop detector comprises a content addressable memory (CAM) which is enabled by a user programmed signal. The CAM may be configured with a programmable mask to determine which bits of the incoming PC data to compare with the CAM entries. The depth of the CAM also is programmable, to permit the CAM to be adjusted to cover the number of instructions in a loop.
    Type: Application
    Filed: December 28, 2001
    Publication date: July 3, 2003
    Inventors: Timothe Litt, Richard E. Kessler, Thomas Hummel
  • Publication number: 20030126490
    Abstract: A system is disclosed in which an on-chip logic analyzer (OCLA) includes timestamp logic capable of providing clock cycle resolution of data entries using a relatively small number of bits. The timestamp logic includes a counter that is reset each time a store operation occurs. The counter counts the number of clock cycles since the previous store operation, and if enabled by the user, provides a binary signal to the memory that indicates the number of clock cycles since the previous store operation, which the memory stores with the state data. If the counter overflows before a store operation is requested, the timestamp logic may force a store operation so that the time between stores can be determined.
    Type: Application
    Filed: December 28, 2001
    Publication date: July 3, 2003
    Inventors: Timothe Litt, Richard E. Kessler, Thomas Hummel
  • Patent number: 6567900
    Abstract: A computer system includes multiple processors, each of which includes an associated memory. Each of the processors is capable of accessing the memory of all other processors. Memory can be stored and accessed using different addressing schemes. For data that will only be used by the local processor, data is stored in memory using processor contiguous addressing, so that data is stored in the local memory. For data that may be accessed by multiple processors, data is stored using striping among a local processor set. A stripe control register in the memory controller of each memory comprises a mask that indicates which memory blocks should be accessed using processor contiguous addressing and which should be accessed by using striped addressing. For both striped and contiguous addressing, the address space includes a processor identification field to identify the processor where the associated memory resides, together with an offset indicating where in memory the address is located.
    Type: Grant
    Filed: August 31, 2000
    Date of Patent: May 20, 2003
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Richard E. Kessler
  • Patent number: 6546453
    Abstract: A computer system contains a processor that includes a software programmable memory mapper. The memory mapper maps an address generated by the processor into a device address for accessing physical main memory. The processor also includes a cache controller that maps the processor address into a cache address. The cache address places a block of data from main memory into a memory cache using an index subfield. The physical main memory contains RDRAM devices, each of the RDRAM devices containing a number of memory banks that store rows and columns of data. The memory mapper maps processor addresses to device addresses to increases memory system performance. The mapping minimizes memory access conflicts between the memory banks. Conflicts between memory banks are reduced by placing a number of bits corresponding to the bank subfield above the most significant boundary bit of the index subfield.
    Type: Grant
    Filed: August 31, 2000
    Date of Patent: April 8, 2003
    Assignee: Compaq Information Technologies Group, L.P.
    Inventors: Richard E. Kessler, Maurice B. Steinman, Peter J. Bannon, Michael C. Braganza, Gregg A. Bouchard
  • Publication number: 20030020621
    Abstract: A method and apparatus for processing security operations are described. In one embodiment, a processor includes a number of execution units to process a number of requests for security operations. The number of execution units are to output the results of the number of requests to a number of output data structures associated with the number of requests within a remote memory based on pointers stored in the number of requests. The number of execution units can output the results in an order that is different from the order of the requests in a request queue. The processor also includes a request unit coupled to the number of execution units. The request unit is to retrieve a portion of the number of requests from the request queue within the remote memory and associated input data structures for the portion of the number of requests from the remote memory.
    Type: Application
    Filed: December 19, 2001
    Publication date: January 30, 2003
    Inventors: Richard E. Kessler, David A. Carlson, Muhammad Raghib Hussain, Robert A. Sanzone, Khaja E. Ahmed, Michael D. Varga
  • Patent number: 6493802
    Abstract: According to the present invention a cache within a multiprocessor system is speculatively filled. To speculatively fill a designated cache, the present invention first determines an address which identifies information located in a main memory. The address may also identify one or more other versions of the information located in one or more caches. The process of filling the designated cache with the information is started by locating the information in the main memory and locating other versions of the information identified by the address in the caches. The validity of the information located in the main memory is determined after locating the other versions of the information. The process of filling the designated cache with the information located in the main memory is initiated before determining the validity of the information located in main memory. Thus, the memory reference is speculative.
    Type: Grant
    Filed: June 18, 1998
    Date of Patent: December 10, 2002
    Assignee: Compaq Information Technologies Group, L.P.
    Inventors: Rahul Razdan, James B. Keller, Richard E. Kessler
  • Patent number: 6397302
    Abstract: A multiprocessor system includes a plurality of processors, each processor having one or more caches local to the processor, and a memory controller connectable to the plurality of processors and a main memory. The memory controller manages the caches and the main memory of the multiprocessor system. A processor of the multiprocessor system is configurable to evict from its cache a block of data. The selected block may have a clean coherence state or a dirty coherence state. The processor communicates a notify signal indicating eviction of the selected block to the memory controller. In addition to sending a write victim notify signal if the selected block has a dirty coherence state, the processor sends a clean victim notify signal if the selected block has a clean coherence state.
    Type: Grant
    Filed: June 18, 1998
    Date of Patent: May 28, 2002
    Assignee: Compaq Information Technologies Group, L.P.
    Inventors: Rahul Razdan, James B. Keller, Richard E. Kessler
  • Patent number: 6349366
    Abstract: A memory management system couples processors to each other and to a main memory. Each processor may have one or more associated caches local to that processor. A system port of the memory management system receives a request from a source processor of the processors to access a block of data from the main memory. A memory manager of the memory management system then converts the request into a probe command having a data movement part identifying a condition for movement of the block out of a cache of a target processor and a next coherence state part indicating a next state of the block in the cache of the target processor.
    Type: Grant
    Filed: June 18, 1998
    Date of Patent: February 19, 2002
    Assignee: Compaq Information Technologies Group, L.P.
    Inventors: Rahul Razdan, James B. Keller, Richard E. Kessler
  • Patent number: 6314496
    Abstract: A computing apparatus connectable to a cache and a memory, includes a system port configured to receive an atomic probe command or a system data control response command having an address part identifying data stored in the cache which is associated with data stored in the memory and a next coherence state part indicating a next state of the data in the cache. The computing apparatus further includes an execution unit configured to execute the command to change the state of the data stored in the cache according to the next coherence state part of the command.
    Type: Grant
    Filed: June 18, 1998
    Date of Patent: November 6, 2001
    Assignee: Compaq Computer Corporation
    Inventors: Rahul Razdan, James B. Keller, Richard E. Kessler
  • Publication number: 20010029574
    Abstract: A system manages access to caches connected to a plurality of processors in a multiprocessor system; the system including a system port and a memory manager. The system port is connectable to each of the plurality of processors and configured to receive a set-dirty request from one of the processors to modify a block of that processor's cache. The set-dirty request corresponds to a coherence state of the block of the cache. In response to the received set-dirty request, the memory manager directs sending, over the system port, of probes to the caches, (ii) receives cache state information, over the system port, responsive to the probes, (iii) determines an acknowledgment based on the received cache state information representing one of permission granted and permission denied to modify the block of the cache, and (iv) directs sending, over the system port, of the acknowledgment, to the processor.
    Type: Application
    Filed: June 18, 1998
    Publication date: October 11, 2001
    Inventors: RAHUL RAZDAN, JAMES B. KELLER, RICHARD E. KESSLER
  • Patent number: 6295583
    Abstract: A processor of a multiprocessor system is configured to transmit a full probe to a cache associated with the processor to transfer data from the stored data of the cache. The data corresponding to the full probe is transferred during a time period. A first tag-only probe is also transmitted to the cache during the same time period to determine if the data corresponding to the tag-only probe is part of the stored data stored in the cache. A stream of probes accesses the cache in two stages. The cache is composed of a tag structure and a data structure. In the first stage, a probe is designated a tag-only probe and accesses the tag structure, but not the data structure, to determine tag information indicating a hit or a miss. In the second stage, if the probe returns tag information indicating a cache hit the probe is designated to be a full probe and accesses the data structure of the cache. If the probe returns tag information indicating a cache miss the probe does not proceed to the second stage.
    Type: Grant
    Filed: June 18, 1998
    Date of Patent: September 25, 2001
    Assignee: Compaq Information Technologies Group, L.P.
    Inventors: Rahul Razdan, Solomon J. Katzman, James B. Keller, Richard E. Kessler
  • Patent number: 6253285
    Abstract: A data caching system comprises a hashing function, a data store, a tag array, a page translator, a comparator and a duplicate tag array. The hashing function combines an index portion of a virtual address with a virtual page portion of the virtual address to form a cache index. The data store comprises a plurality of data blocks for holding data. The tag array comprises a plurality of tag entries corresponding to the data blocks, and both the data store and tag array are addressed with the cache index. The tag array provides a plurality of physical address tags corresponding to physical addresses of data resident within corresponding data blocks in the data store addressed by the cache index. The page translator translates a tag portion of the virtual address to a corresponding physical address tag.
    Type: Grant
    Filed: July 15, 1998
    Date of Patent: June 26, 2001
    Assignee: Compaq Computer Corporation
    Inventors: Rahul Razdan, Richard E. Kessler, James B. Keller
  • Patent number: 6216174
    Abstract: Improved method and apparatus for facilitating fast barrier synchronization in a parallel-processing system. A single input signal and a single output signal, and a single bit of state (“barrier_bit”) is added to each processor to support a barrier. The input and output signal are coupled to a dedicated barrier-logic circuit that includes memory-mapped bit-vector registers to track the “participating” processors and the “joined” processors for the barrier. A “bjoin” instruction executed in a processor causes a pulse to be sent on the output signal, which in turn causes that processor's bit in the dedicated barrier-logic circuit's “joined” register to be set.
    Type: Grant
    Filed: September 29, 1998
    Date of Patent: April 10, 2001
    Assignee: Silicon Graphics, Inc.
    Inventors: Steven L. Scott, Richard E. Kessler