Patents by Inventor Stephen R. Van Doren

Stephen R. Van Doren 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: 7143245
    Abstract: A system comprises a first node including data having an associated D-state and a second node operative to provide a source broadcast requesting the data. The first node is operative in response to the source broadcast to provide the data to the second node and transition the state associated with the data at the first node from the D-state to an O-state without concurrently updating memory. An S-state is associated with the data at the second node.
    Type: Grant
    Filed: January 20, 2004
    Date of Patent: November 28, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Gregory Edward Tierney, Stephen R. Van Doren, Simon C. Steely, Jr.
  • Patent number: 7051163
    Abstract: A directory maintains status information over memory blocks in a shared memory computer system. The directory has a plurality of entries each corresponding to a respective block, and is organized into a main region and a write-back region. The main region has an owner field, identifying the current owner of the block. The write-back region has a writer field identifying the last owner to have written the block back to memory. To write a block back to memory, the owner enters its identifier in the writer field and writes the data back to memory without checking nor modifying the owner field. In response to a memory operation, if the contents of the owner field and the writer field match, memory concludes that it is the owner, otherwise memory concludes that the entity identified in the owner field is the owner.
    Type: Grant
    Filed: October 3, 2002
    Date of Patent: May 23, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Stephen R. Van Doren, Gregory E. Tierney
  • Patent number: 7024520
    Abstract: A system permits unacknowledged write backs in a computer. The computer has a plurality of processors and a shared memory. The shared memory stores data in terms of memory blocks, and each processor has a cache. Associated with each cache line is a tag containing the address of the block at that line, and its state. A duplicate copy of the tag information (DTAG) for each processor cache is also provided, and each section of the DTAG that corresponds to a given processor is organized into a primary DTAG region and a secondary DTAG region. The secondary DTAG region preferably stores tag information for a dirty version of a block, while the write back of the block is in flight to memory. This frees the primary DTAG region to store tag information for a block other than the dirty block, but using the same cache line.
    Type: Grant
    Filed: October 3, 2002
    Date of Patent: April 4, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Gregory E. Tierney, Stephen R. Van Doren
  • Patent number: 7003635
    Abstract: A system and method provides active inheritance on memory writes such that entities issuing later writes ensure that the effects of earlier writes to the same memory block will be seen. A write chain is preferably formed by storing information and state in miss address file (MAF) entries maintained by the entities. The write chain links the entities requesting write access to the memory block. When the desired memory block becomes available, the information and state stored at the MAF entries is then utilized by each entity in ensuring that all earlier writes are complete before its write is allowed to complete.
    Type: Grant
    Filed: October 3, 2002
    Date of Patent: February 21, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Stephen R. Van Doren
  • Patent number: 7000080
    Abstract: A channel-based mechanism resolves race conditions in a computer system between a first processor writing modified data back to memory and a second processor trying to obtain a copy of the modified data. In addition to a Q0 channel for carrying requests for data, a Q1 channel for carrying probes in response to Q0 requests, and a Q2 channel for carrying responses to Q0 requests, a new channel, the QWB channel, which has a higher priority than Q1 but lower than Q2, is also defined. When a forwarded Read command from the second processor results in a miss at the first processor's cache, because the requested memory block was written back to memory, a Loop command is issued to memory by the first processor on the QWB virtual channel. In response to the Loop command, memory sends the written back version of the memory block to the second processor.
    Type: Grant
    Filed: October 3, 2002
    Date of Patent: February 14, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Stephen R. Van Doren, Gregory E. Tierney
  • Patent number: 6990559
    Abstract: The invention provides a system and method for resolving ambiguous invalidate messages received by an entity of a computer system. An invalidate message is considered ambiguous when the receiving entity cannot tell whether it applies to a previously victimized memory block or to a memory block that the entity is waiting to receive. When an entity receives such an invalidate message, it stores the message in its miss address file (MAF). When the entity subsequently receives the memory block, the entity “replays” the Invalidate message from its MAF by invalidating the block from its cache and issuing an Acknowledgement (Ack) to the entity that triggered issuance of the Invalidate message command.
    Type: Grant
    Filed: October 3, 2002
    Date of Patent: January 24, 2006
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Stephen R. Van Doren, Gregory E. Tierney
  • Patent number: 6904465
    Abstract: A multiple-processor system in which a commit message is returned to a source processor that requests a memory access operation so as to indicate the apparent completion of the operation includes a multiple-level switch unit linking nodes that contain the processors. The switch unit includes multiple input switches each of which receives messages from multiple nodes, and a set of output switches whose inputs are the outputs of the input switches and whose outputs are the inputs of the nodes. Each switch processes messages in the order in which they are received by the switch and each output switch follows the same rule as the other output switches.
    Type: Grant
    Filed: April 26, 2001
    Date of Patent: June 7, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Simon C. Steely, Jr., Madhumitra Sharma, Stephen R. Van Doren
  • Patent number: 6898676
    Abstract: A computer system supports a first set of processors configured to operate in a dirty-shared mode and a second set of processors configured to operate in a non dirty-shared mode. The computer system may include a portion of shared memory that stores data in terms of memory blocks. Upon receiving a snoop read requesting shared access to a memory block held in a dirty state, a dirty-shared processor sends a copy of the memory block to the originator of the snoop read and retains a valid a copy of the block in its cache. Non dirty-shared processors additionally write the block back to main memory in response to snoop reads and may also send a copy to the originator. Until the write back is completed at main memory or another processor is granted write access to the block, the dirty-shared and non dirty-shared processors preferably continue to satisfy sub-sequent snoop reads targeting the memory block.
    Type: Grant
    Filed: October 3, 2002
    Date of Patent: May 24, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Stephen R. Van Doren, Gregory E. Tierney
  • Patent number: 6895476
    Abstract: A retry-based mechanism resolves late race conditions in a computer system between a first processor writing modified data back to main memory and a second processor trying to obtain a copy of the modified data. A low occupancy cache coherency protocol tracks ownership and sharing status of memory blocks. When a memory reference operation forwarded from the second processor results in a miss at the first processor's cache, because the requested memory block was written back to memory, the first processor issues a Retry command to the second processor. In response to the Retry command, the second processor issues another memory reference operation. This time, however, the operation explicitly specifies the version of the memory block being written back to main memory. Once the memory block has been written back to main memory, thereby providing main memory with the desired version, a copy is sent to the second processor.
    Type: Grant
    Filed: October 3, 2002
    Date of Patent: May 17, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Gregory E. Tierney, Stephen R. Van Doren
  • Patent number: 6892290
    Abstract: Early race conditions caused by multiple computer system entities issuing memory reference operations for a given memory block are resolved by creating linked lists identifying the entities. The lists are preferably formed by storing information and state in miss address file (MAF) entries maintained by the entities. The MAF entries cooperate to form one or more read chains each of which links the entities requesting read access to a particular version of the given memory block. The MAF entries also cooperate to form a single write chain that links the entities requesting write access to the given memory block. When the desired memory block becomes available, the information and state stored at the MAF entries is then utilized by each entity in satisfying its obligations as part of the read and write chains, thereby ensuring that each entity receives the version of the given memory block that it desires.
    Type: Grant
    Filed: October 3, 2002
    Date of Patent: May 10, 2005
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Stephen R. Van Doren
  • Patent number: 6801986
    Abstract: A method, for executing a load locked and a store conditional instruction in a processor, achieves an atomic read-write operation to a memory block. First the load locked instruction is executed to read a memory block, and the processor in response to executing the load locked instruction issues a read modify system command to read the block and to take ownership of the block by the processor, and also sets a lock flag for the address of the memory block, and writes a value of the memory block into a cache of the processor as a cache copy of the memory block. The lock flag, upon receipt of an invalidate message by the processor for the cache copy of the memory block, is reset if any invalidate messages for the memory block are received by the processor. The processor waits for a selected time interval before the processor surrenders ownership of the memory block upon receipt of an ownership request message, if any is received by the processor after execution of the load locked instruction.
    Type: Grant
    Filed: August 20, 2001
    Date of Patent: October 5, 2004
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventors: Simon C. Steely, Jr., Stephen R. Van Doren, Madhumitra Sharma
  • Publication number: 20040133744
    Abstract: A system and method avoids deadlock, such as circular routing deadlock, in a computer system by providing a virtual buffer at main memory. The computer system has an interconnection network that couples a plurality of processors having access to main memory. The interconnection network includes one or more routing agents each having at least one buffer for storing packets that are to be forwarded. When the routing agent's buffer becomes full, thereby preventing it from accepting any additional packets, the routing agent transfers at least one packet into the virtual buffer. By transferring a packet out of the buffer, the routing agent frees up space allowing it to accept a new packet. If the newly accepted packet also results in the buffer becoming full, another packet is transferred into the virtual buffer. This process is repeated until the deadlock condition is resolved. Packets are then retrieved from the virtual buffer.
    Type: Application
    Filed: January 7, 2003
    Publication date: July 8, 2004
    Inventors: Stephen R. Van Doren, Gregory E. Tierney
  • Publication number: 20040068624
    Abstract: A computer system supports a first set of processors configured to operate in a dirty-shared mode and a second set of processors configured to operate in a non dirty-shared mode. The computer system may include a portion of shared memory that stores data in terms of memory blocks. Upon receiving a snoop read requesting shared access to a memory block held in a dirty state, a dirty-shared processor sends a copy of the memory block to the originator of the snoop read and retains a valid a copy of the block in its cache. Non dirty-shared processors additionally write the block back to main memory in response to snoop reads and may also send a copy to the originator. Until the write back is completed at main memory or another processor is granted write access to the block, the dirty-shared and non dirty-shared processors preferably continue to satisfy subsequent snoop reads targeting the memory block.
    Type: Application
    Filed: October 3, 2002
    Publication date: April 8, 2004
    Inventors: Stephen R. Van Doren, Gregory E. Tierney
  • Publication number: 20040068616
    Abstract: A system permits unacknowledged write backs in a computer. The computer has a plurality of processors and a shared memory. The shared memory stores data in terms of memory blocks, and each processor has a cache. Associated with each cache line is a tag containing the address of the block at that line, and its state. A duplicate copy of the tag information (DTAG) for each processor cache is also provided, and each section of the DTAG that corresponds to a given processor is organized into a primary DTAG region and a secondary DTAG region. The secondary DTAG region preferably stores tag information for a dirty version of a block, while the write back of the block is in flight to memory. This frees the primary DTAG region to store tag information for a block other than the dirty block, but using the same cache line.
    Type: Application
    Filed: October 3, 2002
    Publication date: April 8, 2004
    Inventors: Gregory E. Tierney, Stephen R. Van Doren
  • Publication number: 20040068620
    Abstract: A directory maintains status information over memory blocks in a shared memory computer system. The directory has a plurality of entries each corresponding to a respective block, and is organized into a main region and a write-back region. The main region has an owner field, identifying the current owner of the block. The write-back region has a writer field identifying the last owner to have written the block back to memory. To write a block back to memory, the owner enters its identifier in the writer field and writes the data back to memory without checking nor modifying the owner field. In response to a memory operation, if the contents of the owner field and the writer field match, memory concludes that it is the owner, otherwise memory concludes that the entity identified in the owner field is the owner.
    Type: Application
    Filed: October 3, 2002
    Publication date: April 8, 2004
    Inventors: Stephen R. Van Doren, Gregory E. Tierney
  • Publication number: 20040068621
    Abstract: A system and method provides active inheritance on memory writes such that entities issuing later writes ensure that the effects of earlier writes to the same memory block will be seen. A write chain is preferably formed by storing information and state in miss address file (MAF) entries maintained by the entities. The write chain links the entities requesting write access to the memory block. When the desired memory block becomes available, the information and state stored at the MAF entries is then utilized by each entity in ensuring that all earlier writes are complete before its write is allowed to complete.
    Type: Application
    Filed: October 3, 2002
    Publication date: April 8, 2004
    Inventor: Stephen R. Van Doren
  • Publication number: 20040068619
    Abstract: Early race conditions caused by multiple computer system entities issuing memory reference operations for a given memory block are resolved by creating linked lists identifying the entities. The lists are preferably formed by storing information and state in miss address file (MAF) entries maintained by the entities. The MAF entries cooperate to form one or more read chains each of which links the entities requesting read access to a particular version of the given memory block. The MAF entries also cooperate to form a single write chain that links the entities requesting write access to the given memory block. When the desired memory block becomes available, the information and state stored at the MAF entries is then utilized by each entity in satisfying its obligations as part of the read and write chains, thereby ensuring that each entity receives the version of the given memory block that it desires.
    Type: Application
    Filed: October 3, 2002
    Publication date: April 8, 2004
    Inventor: Stephen R. Van Doren
  • Publication number: 20040068622
    Abstract: The invention provides a system and method for resolving ambiguous invalidate messages received by an entity of a computer system. An invalidate message is considered ambiguous when the receiving entity cannot tell whether it applies to a previously victimized memory block or to a memory block that the entity is waiting to receive. When an entity receives such an invalidate message, it stores the message in its miss address file (MAF). When the entity subsequently receives the memory block, the entity “replays” the Invalidate message from its MAF by invalidating the block from its cache and issuing an Acknowledgement (Ack) to the entity that triggered issuance of the Invalidate message command.
    Type: Application
    Filed: October 3, 2002
    Publication date: April 8, 2004
    Inventors: Stephen R. Van Doren, Gregory E. Tierney
  • Publication number: 20040068613
    Abstract: A retry-based mechanism resolves late race conditions in a computer system between a first processor writing modified data back to main memory and a second processor trying to obtain a copy of the modified data. A low occupancy cache coherency protocol tracks ownership and sharing status of memory blocks. When a memory reference operation forwarded from the second processor results in a miss at the first processor's cache, because the requested memory block was written back to memory, the first processor issues a Retry command to the second processor. In response to the Retry command, the second processor issues another memory reference operation. This time, however, the operation explicitly specifies the version of the memory block being written back to main memory. Once the memory block has been written back to main memory, thereby providing main memory with the desired version, a copy is sent to the second processor.
    Type: Application
    Filed: October 3, 2002
    Publication date: April 8, 2004
    Inventors: Gregory E. Tierney, Stephen R. Van Doren
  • Publication number: 20040066758
    Abstract: A channel-based mechanism resolves race conditions in a computer system between a first processor writing modified data back to memory and a second processor trying to obtain a copy of the modified data. In addition to a Q0 channel for carrying requests for data, a Q1 channel for carrying probes in response to Q0 requests, and a Q2 channel for carrying responses to Q0 requests, a new channel, the QWB channel, which has a higher priority than Q0 but lower than Q2, is also defined. When a forwarded Read command from the second processor results in a miss at the first processor's cache, because the requested memory block was written back to memory, a Loop command is issued to memory by the first processor on the QWB virtual channel. In response to the Loop command, memory sends the written back version of the memory block to the second processor.
    Type: Application
    Filed: October 3, 2002
    Publication date: April 8, 2004
    Inventors: Stephen R. Van Doren, Gregory E. Tierney