← Back to Patent Explorer
US5572703A Expired / Lapsed US ⏱️ 0.0 years remaining

Method and apparatus for snoop stretching using signals that convey snoop results

Assignee: Intel Corp
•
Filing: 1994-03-01
•
Granted: 1996-11-05
•
Expires: 2014-03-01
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A protocol and related apparatus for snoop stretching in a computer system having at least one requesting agent for issuing bus transaction requests and at least one snooping agent for monitoring transaction requests and issuing bus signals onto an external bus. The bus transactions are timed by a bus clock signal having a plurality of cycles. To indicate snoop stretching, during a first cycle a first snooping agent asserts both a HIT# bus signal and a HITM# bus signal together to indicate that the first snooping agent must delay assertion of valid snoop results for a predetermined snoop period. During a later cycle, to indicate the end of the snoop stretch, the first snooping agent deasserts the assertion of both the HIT# and HITM# signals together and asserts its valid snoop results. The HIT# and HITM# signals alone each represent valid snoop results. If the first snooping agent must continue delaying assertion of valid snoop results, then it reasserts both the HIT# and HITM# bus signals together for the predetermined snoop period. If a second snooping agent is ready to assert its valid snoop results, it will do so while the first snooping agent causes a snoop stretch, and will reassert its valid snoop results up to and including the cycle that the first snooping agent deasserts it snoop stretch and asserts its own valid snoop results.

Inventors

  • 👤 Peter MacWilliams
  • 👤 Nitin V. Sarangdhar
  • 👤 Matthew Fisch
  • 👤 Amit Merchant

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-07 23:39
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/0802; G06F12/0806; G06F12/0815; G06F12/0831

Claims Analysis

Total Claims: 44
Claim 1
Independent Claim 128 words
In a computer system having at least one requesting agent for issuing bus transaction requests and at least one snooping agent for monitoring transaction requests and issuing bus signals on an external bus, wherein the bus transactions are timed by a bus clock signal having a plurality of cycles, a method for stretching the snoop phase of a bus transaction comprising the steps of: during a first cycle, a first snooping agent asserting both a HIT# bus signal and HITM# bus signal together to indicate that the first snooping agent must delay assertion of valid snoop results for a predetermined snoop period; during a later cycle, the first snooping agent deasserting the assertion of both the HIT# and HITM# bus signals together and asserting its valid snoop results.
Claim 2
Dependent Claim 128 words
In a computer system having at least one requesting agent for issuing bus transaction requests and at least one snooping agent for monitoring transaction requests and issuing bus signals on an external bus, wherein the bus transactions are timed by a bus clock signal having a plurality of cycles, a method for stretching the snoop phase of a bus transaction comprising the steps of: during a first cycle, a first snooping agent asserting both a HIT# bus signal and HITM# bus signal together to indicate that the first snooping agent must delay assertion of valid snoop results for a predetermined snoop period; during a later cycle, the first snooping agent deasserting the assertion of both the HIT# and HITM# bus signals together and asserting its valid snoop results.
Claim 3
Dependent Claim 89 words
The method of claim 1, wherein when the HIT# and HITM# bus signals are not asserted together by the same snooping agent, they each represent valid snoop results, the HIT# bus signal alone indicating that a cache line associated with the transaction request is stored in a shared or exclusive state in a cache associated with a snooping agent, and the HITM# bus signal alone indicating that a cache line associated with the transaction request is stored in a modified state in a cache associated with a snooping agent.
Claim 4
Dependent Claim 45 words
The method of claim 1, further comprising the step of: before the later cycle, the first snooping agent reasserting both the HIT# and HITM# bus signals together if the first snooping agent must again delay assertion of the snoop results for the predetermined snoop period.
Claim 5
Dependent Claim 57 words
The method of claim 1, wherein the external bus is a wired 0R bus and the computer system includes a second snooping agent, the method further comprising the steps of: during the first cycle, the second snooping agent asserting its valid snoop results; and during the later cycle, the second snooping agent reasserting its valid snoop results.
Claim 6
Dependent Claim 128 words
The method of claim 1, wherein the external bus is a wired OR bus and the computer system includes a second agent, the method further comprising the steps of: during the first cycle, the second snooping agent asserting both a HIT# bus signal and a HITM# bus signal together to indicate that the second snooping agent must delay assertion of valid snoop results for the predetermined snoop period; and during the later cycle, the second snooping agent reasserting both the HIT# and HITM# bus signals together; and during a second later cycle after the later cycle, the second snooping agent deasserting the assertion of both the HIT# and HITM# bus signals together and asserting its valid snoop results, and the first snooping agent reasserting its valid snoop results.
Claim 7
Dependent Claim 35 words
The method of claim 1, wherein the external bus is a wired OR bus the bus signals being logically inactive when in a high voltage state and logically active when in a low voltage state.
Claim 8
Dependent Claim 30 words
The method of claim 6, wherein the period of the bus clock cycle is small enough to accomplish incident wave switching of the bus signals on the wired OR bus.
Claim 9
Dependent Claim 117 words
The method of claim 1, wherein each bus transaction has a request phase during which a transaction request is issued, each request phase is separated by a predetermined request generation period, in the absence of a previous stretched snoop phase, the beginning of the snoop phase for a transaction is separated from the beginning of the request phase of the transaction by a predetermined request-snoop lag time, if a previous snoop phase was stretched, the beginning of the snoop phase for a transaction is separated from the time valid snoop results are asserted for a previous transaction by a predetermined snoop-snoop lag time, and the snoop-snoop lag time is shorter in duration than the request-snoop lag time.
Claim 10
Dependent Claim 27 words
The method of claim 8, wherein the predetermined request generation period comprises three bus clock cycles and the predetermined request-snoop lag time comprises four bus clock cycles.
Claim 11
Dependent Claim 16 words
The method of claim 9, wherein the predetermined snoop-snoop lag time comprises three bus clock cycles.
Claim 12
Dependent Claim 16 words
The method of claim 9, wherein the predetermined snoop-snoop lag time comprises two bus clock cycles.
Claim 13
Dependent Claim 84 words
The method of claim 8, wherein the external bus is a wired OR bus, each bus transaction has an error phase during which an error signal may be asserted and if an error signal is asserted during the error phase of a transaction, in the absence of a previous stretched snoop phase, any snoop results asserted during the snoop phase for the transaction are ignored, if a previous snoop phase was stretched, the snoop phase for the transaction is canceled by all snooping agents.
Claim 14
Dependent Claim 169 words
In a computer system having at least one requesting agent for issuing bus transaction requests and at least one snooping agent for monitoring transaction requests and issuing bus signals on an external bus, wherein the bus transactions are timed by a bus clock signal having a plurality of cycles, a method for stretching the snoop phase of a bus transaction comprising the steps of: a first snooping agent asserting both a HIT# bus signal and a HITM# bus signal together when the first snooping agent must delay assertion of valid snoop results for a predetermined snoop period, the cycle in which the first snooping agent asserts both signals together being denoted a first cycle, and when the first snooping agent is ready to assert its valid snoop results, the first snooping agent deasserting the assertion of both the HIT# and HITM# bus signals together and asserting its valid snoop results, the cycle in which the first snooping agent asserts its valid snoop results being denoted at a later cycle.
Claim 15
Dependent Claim 169 words
In a computer system having at least one requesting agent for issuing bus transaction requests and at least one snooping agent for monitoring transaction requests and issuing bus signals on an external bus, wherein the bus transactions are timed by a bus clock signal having a plurality of cycles, a method for stretching the snoop phase of a bus transaction comprising the steps of: a first snooping agent asserting both a HIT# bus signal and a HITM# bus signal together when the first snooping agent must delay assertion of valid snoop results for a predetermined snoop period, the cycle in which the first snooping agent asserts both signals together being denoted a first cycle, and when the first snooping agent is ready to assert its valid snoop results, the first snooping agent deasserting the assertion of both the HIT# and HITM# bus signals together and asserting its valid snoop results, the cycle in which the first snooping agent asserts its valid snoop results being denoted at a later cycle.
Claim 16
Dependent Claim 84 words
The method of claim 13, wherein the external bus is a wired OR bus, each bus transaction has an error phase during which an error signal may be asserted and if an error signal is asserted during the error phase of a transaction, in the absence of a previous stretched snoop phase, any snoop results asserted during the snoop phase for the transaction are ignored, if a previous snoop phase was stretched, the snoop phase for the transaction is canceled by all snooping agents.
Claim 17
Dependent Claim 192 words
A computer system for implementing a snoop stretching protocol, the system having a bus clock for generating a bus clock signal having a plurality of cycles for timing bus transactions, the system comprising: at least one external bus for communicating bus signals and bus transaction requests; at least one requesting agent, coupled to a corresponding external bus, for issuing bus transaction requests; and at least one snooping agent, coupled to a corresponding external bus, for monitoring transaction requests and issuing bus signals on its corresponding external bus, wherein a first snooping agent asserts both a HIT# bus signal and a HITM# bus signal together when the first snooping agent must delay assertion of valid snoop results for a predetermined snoop period, the cycle in which the first snooping agent asserts both signals together being denoted a first cycle, and when the first snooping agent is ready to assert its valid snoop results, the first snooping agent deasserts the assertion of both the HIT# and HITM# bus signals together and asserts its valid snoop results, the cycle in which the first snooping agent asserts its valid snoop results being denoted a later cycle.
Claim 18
Dependent Claim 192 words
A computer system for implementing a snoop stretching protocol, the system having a bus clock for generating a bus clock signal having a plurality of cycles for timing bus transactions, the system comprising: at least one external bus for communicating bus signals and bus transaction requests; at least one requesting agent, coupled to a corresponding external bus, for issuing bus transaction requests; and at least one snooping agent, coupled to a corresponding external bus, for monitoring transaction requests and issuing bus signals on its corresponding external bus, wherein a first snooping agent asserts both a HIT# bus signal and a HITM# bus signal together when the first snooping agent must delay assertion of valid snoop results for a predetermined snoop period, the cycle in which the first snooping agent asserts both signals together being denoted a first cycle, and when the first snooping agent is ready to assert its valid snoop results, the first snooping agent deasserts the assertion of both the HIT# and HITM# bus signals together and asserts its valid snoop results, the cycle in which the first snooping agent asserts its valid snoop results being denoted a later cycle.
Claim 19
Dependent Claim 89 words
The system of claim 15, wherein, when the HIT# and HITM# bus signals are not asserted together by the same snooping agent, they each represent valid snoop results, the HIT# bus signal alone indicating that a cache line associated with the transaction request is stored in a shared or exclusive state in a cache associated with a snooping agent, and the HITM# bus signal alone indicating that a cache line associated with the transaction request is stored in a modified state in a cache associated with a snooping agent.
Claim 20
Dependent Claim 41 words
The system of claim 15, wherein the first snooping agent reasserts both the HIT# and HITM# bus signals together before the later cycle if the first snooping agent must again delay assertion of the snoop results for the predetermined snoop period.
Claim 21
Dependent Claim 72 words
The system of claim 15, wherein the external bus is a wired OR bus, during the first cycle, if a second snooping agent is ready to assert its valid snoop results, the second snooping agent asserts its valid snoop results; and during the later cycle, if the first snooping agent is asserting both the HIT# bus signal and the HITM# bus signal together, the second snooping agent reasserts its valid snoop results.
Claim 22
Dependent Claim 144 words
The system of claim 15, wherein the external bus is a wired OR bus, during the first cycle, if the second snooping agent must delay assertion of its valid snoop results for the predetermined snoop period, the second snooping agent asserts both a HIT# bus signal and a HITM# bus signal together, and during the later cycle, if the second snooping agent must again delay assertion of its valid snoop results for the predetermined snoop period, the second snooping agent reasserts both the HIT# and HITM# bus signals together; and during a second later cycle after the later cycle, if the second snooping agent is ready to assert its valid snoop results, the second snooping agent deasserts the assertion of both the HIT# and HITM# bus signals together and asserts its valid snoop results, and the first snooping agent reasserts its valid snoop results.
Claim 23
Dependent Claim 35 words
The system of claim 15, wherein the external bus is a wired OR bus, the bus signals being logically inactive when in a high voltage state and logically active when in a low voltage state.
Claim 24
Dependent Claim 30 words
The system of claim 20, wherein the period of the bus clock cycle is small enough to accomplish incident wave switching of the bus signals on the wired OR bus.
Claim 25
Dependent Claim 117 words
The system of claim 15, wherein each bus transaction has a request phase during which a transaction request is issued, each request phase is separated by a predetermined request generation period, in the absence of a previous stretched snoop phase, the beginning of the snoop phase for a transaction is separated from the beginning of the request phase of the transaction by a predetermined request-snoop lag time, if a previous snoop phase was stretched, the beginning of the snoop phase for a transaction is separated from the time valid snoop results are asserted for a previous transaction by a predetermined snoop-snoop lag time, and the snoop-snoop lag time is shorter in duration than the request-snoop lag time.
Claim 26
Dependent Claim 27 words
The system of claim 22, wherein the predetermined request generation period comprises three bus clock cycles and the predetermined request-snoop lag time comprises four bus clock cycles.
Claim 27
Dependent Claim 16 words
The system of claim 23, wherein the predetermined snoop-snoop lag time comprises three bus clock cycles.
Claim 28
Dependent Claim 16 words
The system of claim 23, wherein the predetermined snoop-snoop lag time comprises two bus clock cycles.
Claim 29
Dependent Claim 94 words
The system of claim 15, wherein the external bus is a wired OR bus, each bus transaction has an error phase during which an error signal may be asserted, if a snooping agent or a requesting agent asserts an error signal during the error phase of a transaction: in the absence of a previous stretched snoop phase, all snooping agents and requesting agents ignore the snoop results asserted during the snoop phase of the transaction, if a previous snoop phase was stretched, the snoop phase for the transaction is canceled by all snooping agents.
Claim 30
Dependent Claim 40 words
The method of claim 1, further comprising the step of: if the HIT# and HITM# bus signals are asserted simultaneously for greater than a predetermined period of time, thereby producing a cache protocol violation, detecting and handling the protocol violation.
Claim 31
Dependent Claim 40 words
The method of claim 13, further comprising the step of: if the HIT# and HITM# bus signals are asserted simultaneously for greater than a predetermined period of time, thereby producing a cache protocol violation, detecting and handling the protocol violation.
Claim 32
Dependent Claim 41 words
The computer system of claim 15, further comprising a time-out mechanism for detecting and handling a protocol violation, wherein the protocol violation occurs if the HIT# and HITM# bus signals are asserted simultaneously for greater than a predetermined period of time.
Claim 33
Dependent Claim 44 words
The method of claim 6, wherein each bus clock cycle has a first edge and a second edge, the bus signals being driven on the first edge of a bus clock cycle and observed on the first edge of a next bus clock cycle.
Claim 34
Dependent Claim 21 words
The method of claim 30, wherein the first edge is a rising edge and the second edge is a falling edge.
Claim 35
Dependent Claim 44 words
The system of claim 20, wherein each bus clock cycle has a first edge and a second edge, the bus signals being driven on the first edge of a bus clock cycle and observed on the first edge of a next bus clock cycle.
Claim 36
Dependent Claim 31 words
The system of claim 32, wherein the first edge is a rising edge of a bus clock cycle and the second edge is a failing edge of a bus clock cycle.
Claim 37
Dependent Claim 121 words
In a computer system having at least one requesting agent for issuing bus transaction requests and at least one snooping agent for monitoring transaction requests and issuing bus signals on an external bus, a method for stretching the snoop phase of a bus transaction comprising the steps of: during a first cycle, a first snooping agent asserting both a first bus signal and a second bus signal together to indicate that the first snooping agent must delay assertion of valid snoop results for a predetermined snoop period; during a later cycle, the first snooping agent deasserting the assertion of both the first and second bus signals together and providing its valid snoop results using said first and second bus signals individually.
Claim 38
Dependent Claim 121 words
In a computer system having at least one requesting agent for issuing bus transaction requests and at least one snooping agent for monitoring transaction requests and issuing bus signals on an external bus, a method for stretching the snoop phase of a bus transaction comprising the steps of: during a first cycle, a first snooping agent asserting both a first bus signal and a second bus signal together to indicate that the first snooping agent must delay assertion of valid snoop results for a predetermined snoop period; during a later cycle, the first snooping agent deasserting the assertion of both the first and second bus signals together and providing its valid snoop results using said first and second bus signals individually.
Claim 39
Dependent Claim 89 words
The method of claim 34, wherein when the first and second bus signals are not asserted together by the same snooping agent, they each represent valid snoop results, the first bus signal alone indicating that a cache line associated with the transaction request is stored in a shared or exclusive state in a cache associated with a snooping agent, and the second bus signal alone indicating that a cache line associated with the transaction request is stored in a modified state in a cache associated with a snooping agent.
Claim 40
Dependent Claim 45 words
The method of claim 34, further comprising the step of: before the later cycle, the first snooping agent reasserting both the first and second bus signals together if the first snooping agent must again delay assertion of the snoop results for the predetermined snoop period.
Claim 41
Dependent Claim 57 words
The method of claim 34, wherein the external bus is a wired OR bus and the computer system includes a second snooping agent, the method further comprising the steps of: during the first cycle, the second snooping agent asserting its valid snoop results; and during the later cycle, the second snooping agent reasserting its valid snoop results.
Claim 42
Dependent Claim 130 words
The method of claim 34, wherein the external bus is a wired OR bus and the computer system includes a second snooping agent, the method further comprising the steps of: during the first cycle, the second snooping agent asserting both a first bus signal and a second bus signal together to indicate that the second snooping agent must delay assertion of valid snoop results for the predetermined snoop period; and during the later cycle, the second snooping agent reasserting the both the first and second bus signals together; and during a second later cycle after the later cycle, the second snooping agent deasserting the assertion of both the first and second bus signals together and asserting its valid snoop results, and the first snooping agent reasserting its valid snoop results.
Claim 43
Dependent Claim 61 words
The method of claim 34, wherein the external bus is a wired OR bus and each bus clock cycle has a first edge and a second edge, the bus signals being deasserted inactive high and latched on the first edge of a bus cycle after being asserted active low or inactive high on the first edge of a previous bus cycle.
Claim 44
Dependent Claim 117 words
The method of claim 34, wherein each bus transaction has a request phase during which a transaction request is issued, each request phase is separated by a predetermined request generation period, in the absence of a previous stretched snoop phase, the beginning of the snoop phase for a transaction is separated from the beginning of the request phase of the transaction by a predetermined request-snoop lag time, if a previous snoop phase was stretched, the beginning of the snoop phase for a transaction is separated from the time valid snoop results are asserted for a previous transaction by a predetermined snoop-snoop lag time, and the snoop-snoop lag time is shorter in duration than the request-snoop lag time.

References Cited (Backward Citations)

US5339399A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1999-11-05 2000-05-06 2000-11-05 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2003-11-05 2004-05-06 2004-11-05 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2007-11-05 2008-05-06 2008-11-05 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag