Stack read/write counter through checking
AssigneeUnisys Corporation
InventorRobert H. Andrighetti
Life of this patent
Estimating the term…
Abstract
An apparatus for efficiently detecting an error on a memory stack write pointer or a memory stack read pointer by continuously monitoring the relative position between the two pointers. Using this technique, the present invention may detect certain classes of errors that cannot be detected by other error detection methods such as redundancy. The present invention eliminates the need to provide full redundancy thereby potentially saving considerable cost, size and power in a typical computer system.
Claims22
An apparatus for checking the integrity of a read pointer value stored in a read pointer register and a write pointer value stored in a write pointer register, the read pointer register and the write pointer register being coupled to a memory device and controlled by a number of control signals provided by a memory controller, comprising:
- a. determining means coupled to the read pointer register and to the write pointer register for determining an expected difference between the read pointer value and the write pointer value, said determining means determining the expected difference by monitoring predetermined ones of the number of control signals provided by the memory controller;
- b. adding means coupled to said determining means for adding the expected difference to the read pointer value and obtaining an expected write pointer value;
- and
- c. first comparing means coupled to said adding means and further coupled to the write pointer register for comparing the expected write pointer value to the write pointer value and for notifying the memory controller when the expected write pointer value does not have a predetermined relationship with the write pointer value.
An apparatus for checking the integrity of a read pointer value stored in a read pointer register and a write pointer value stored in a write pointer register, the read pointer register and the write pointer register being coupled to a memory device and controlled by a number of control signals provided by a memory controller, comprising:
- a. a determining circuit coupled to the read pointer register and to the write pointer register providing an expected difference between the read pointer value and the write pointer value, said determining circuit determining the expected difference by monitoring predetermined ones of the number of control signals provided by the memory controller;
- b. an adder circuit coupled to said determining circuit for adding the expected difference to the read pointer value and obtaining an expected write pointer value;
- and
- c. a first comparator circuit coupled to the adder circuit and further coupled to the write pointer register for comparing the expected write pointer value to the write pointer value and for notifying the memory controller when the expected write pointer value does not have a predetermined relationship with the write pointer value.
An apparatus for checking the integrity of a read pointer value and a write pointer value, comprising:
- a. a write pointer generation circuit coupled to a memory device and further to a memory controller, said write pointer generation circuit storing the write pointer value, said write pointer generation circuit having a write increment input whereby a predetermined logic level imposed on said write increment input causes said write pointer generation circuit to increment the write pointer value, said write increment input being coupled to the memory controller;
- b. a read pointer generation circuit coupled to the memory device and further to the memory controller, said read pointer generation circuit storing the read pointer value, said read pointer generation circuit having a read increment input whereby a predetermined logic level imposed on said read increment input causes said read pointer generation circuit to increment the read pointer value, said read increment input being coupled to the memory controller;
- c. a first dual data flip-flip having a first storage element, a second storage element, and an output wherein said first storage element and said second storage element have an enable input and a data input, said data input of the first storage element is coupled to said read increment input of said read pointer generation circuit and said enable input of said first storage element is coupled to a first enable input port, said data input of the second storage element is coupled to a predetermined voltage and said enable input of said second storage element is coupled to a second enable input port;
- d. a second dual data flip-flip having a third storage element, a fourth storage element, and an output wherein said third storage element and said fourth storage element have an enable input and a data input, said data input of the third storage element is coupled to the write increment input of said write pointer generation circuit and the enable input of said third storage element is coupled to the second enable input port, said data input of the fourth storage element is coupled to a predetermined voltage and the enable input of said fourth storage element is coupled to the first enable input port;
- e. an OR gate having a first input coupled to the output of said first dual data flip-flop and a second input coupled to the output of said second dual data flip-flop;
- f. a tracking counter having an EN input and an up/down control input, said EN input is coupled to said OR gate and said up/down control input is coupled to the output of said second dual data flip-flop for tracking the difference between the read pointer value and the write pointer value, said tracking counter providing result signals;
- g. a first register coupled to said tracking counter for storing said result signals of said tracking counter;
- h. a second register coupled to said read pointer generation circuit for storing the read pointer;
- i. a third register coupled to said write pointer generation circuit for storing the write pointer value;
- j. an adder coupled to said first register and to said second register for adding said result signals of said tracking counter to said read pointer value, said adder providing result signals;
- and
- k. a first comparator coupled to said adder and to said third register for comparing said result signals of said adder with said write pointer value, said first comparator providing a pointer fault signal if said result signals of said adder are not equal to said write pointer value and an over-run fault if said result signals of said adder are greater than said write pointer value.
A method for checking the integrity of a read pointer and a write pointer, the read pointer and the write pointer being provided to a memory device and controlled by a memory controller, comprising:
- a. calculating and maintaining an expected difference between the read pointer and the write pointer;
- b. adding the expected difference to the read pointer and obtaining an expected write pointer;
- c. comparing the expected write pointer to the write pointer;
- and
- d. issuing a first fault to the memory controller if the expected write pointer does not equal the write pointer.
A method for checking the integrity of a read pointer and a write pointer, the read pointer and the write pointer being coupled to a memory device and controlled by a memory controller, comprising:
- a. monitoring a write pointer control line and a read pointer control line;
- b. determining if the write pointer control line is set;
- c. incrementing a tracking counter if the write pointer control line is set, said tracking counter providing a tracking counter value;
- d. determining if the read pointer control line is set;
- e. decrementing the tracking counter if the read pointer control line is set;
- f. synchronizing the tracking counter value and the read pointer;
- g. adding the tracking counter value of the tracking counter to the read pointer thereby producing a result;
- and
- h. comparing the result of the adding step (f) to the write pointer.
An apparatus for checking the integrity of a read pointer value stored in a read pointer register and a write pointer value stored in a write pointer register, the read pointer register and the write pointer register being coupled to a memory device, the read pointer value being controlled by a memory controller via an increment read pointer signal and the write pointer value being controlled by the memory controller via an increment write pointer signal, comprising:
- a. a tracking counter coupled to the memory controller, said tracking counter being incremented by the increment write pointer signal and decremented by the increment read pointer signal, said tracking counter providing an expected difference between the read pointer value and the write pointer value;
- b. adding means coupled to said tracking counter for adding the expected difference to the read pointer value and providing an expected write pointer value;
- and
- c. first comparing means coupled to said adding means and further coupled to the write pointer register for comparing the expected write pointer value to the write pointer value and for notifying the memory controller when the expected write pointer value does not have a predetermined relationship with the write pointer value.
Dependencies are inferred from the claim text.