US5471487A - Stack read/write counter through checking - Google Patents
Stack read/write counter through checking Download PDFInfo
- Publication number
- US5471487A US5471487A US08/233,232 US23323294A US5471487A US 5471487 A US5471487 A US 5471487A US 23323294 A US23323294 A US 23323294A US 5471487 A US5471487 A US 5471487A
- Authority
- US
- United States
- Prior art keywords
- write pointer
- value
- coupled
- read
- write
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
- 238000000034 method Methods 0.000 claims abstract description 16
- 238000012544 monitoring process Methods 0.000 claims abstract description 5
- 230000009977 dual effect Effects 0.000 claims description 36
- 241000249931 Doronicum maximum Species 0.000 claims 3
- 238000001514 detection method Methods 0.000 abstract description 16
- 238000010586 diagram Methods 0.000 description 8
- 230000002411 adverse Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000003111 delayed effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
Definitions
- the present invention is generally related to digital computers that utilize read and write pointers to access a memory element and more particularly relates to means for checking the validity of the read and write pointers.
- error detection refers to the detection of errors within a computer system before the errors adversely affect the arithmetic operations within the computer system. Many of today's computer systems incorporate some form of error detection to achieve improved reliability.
- a specific type of memory element that is of interest is a memory stack.
- a memory stack is a number of memory locations that may be accessed via an address bus.
- a read/write memory stack employs two address busses which are typically called pointers.
- the read/write memory stack has a read pointer and a write pointer.
- a memory controller within the computer system may control the read pointer and the write pointer such that only valid data is written to the memory stack and only valid data is read from the memory stack.
- the memory controller may write one or more data words into a series of address locations using the write pointer. At a later time, the memory controller may read the previously written data elements using the read pointer.
- a first-in-first-out (FIFO) stack In one type of read/write memory stack, called a first-in-first-out (FIFO) stack, the write pointer is incremented as data is written into the stack. Similarly, when reading the stack, the read pointer is incremented through the same memory locations as the write pointer passed through and in the same order, thus causing the first data element that is written to the FIFO stack to also be the first element that is read from the FIFO stack.
- the memory controller may not allow the read pointer to be incremented past the write pointer thus preventing invalid data from being read from the memory stack.
- the absolute address location that is written or read via the write and read pointers is not important in a FIFO stack configuration. Rather, the relative difference between the write pointer and the read pointer is what defines valid data.
- the write and read pointers are typically generated by counters whereby the counters have a predetermined width. The width of the counters are selected such that counters have the same number of states as the corresponding memory element. In this way, the counters can be incremented such that the pointer address travels from a zero address to the maximum address of the memory element and then back to the zero address.
- the memory controller may provide protection for preventing the write pointer from being incremented into data that has not yet been read. This is termed a "stack full" condition. When a stack full condition is detected, the memory controller must read data from the memory stack before further data can be written into the stack.
- Parity is a method for detecting errors whereby one additional "parity bit" is added to each data word in a memory element. For example, in a 16 bit data word, one additional "parity bit” may be added to each data word thereby resulting in a 17 bit data word that must be stored in memory. Parity is defined as either “odd” parity or "even” parity.
- the parity bit may be set by a parity generator such that the total number of 1's in a data word is an even number for an "even" parity system.
- the parity bit may be set by the parity generator such that total number of 1's in the data word is an odd number for an "odd" parity system.
- the parity generator regenerates the parity bit for the data word that is read from memory and is compared to the originally stored parity bit. If there is a difference, an error is detected.
- a single parity bit per data word can detect if a single data bit in a data word flips from one state to another.
- a single parity bit per data word may not be able to detect if more than one bit within a data word flips from one state to another. For example, if two bits within a data word flip from one state to another, the value of the parity bit of the corrupted data word will remain the same as the value of the parity bit of the originally stored data word. Therefore, one parity bit per data word may only allow the detection of a single bit flip within a given data word.
- various numbers of parity bits must be added to each data word depending on the parity generation technique used. In systems that have large arrays of memory elements with potentially hundreds of thousands of data words, it can readily be seen that the parity technique for detecting errors within a computer system can be costly to implement and can require a relatively high level of overhead.
- Redundancy provides duplicate circuits in critical areas of the computer system.
- the inputs of a duplicate circuit may be tied to a corresponding input of a primary circuit.
- the output of the duplicate circuit is then compared to the output of the primary circuit during system operation. If there is a difference, an error flag may be set.
- three or more identical circuits are provided and the outputs of the circuits are connected to a voting circuit.
- the voting circuit compares the outputs of the identical circuits and provides an output that is consistent with the majority of the circuits.
- the FIFO stack memory element referred to above may employ either the parity technique or the redundancy technique or a combination thereof to provide error detection for the memory element itself.
- a particular concern for this type of memory element is the integrity of the read pointer and the write pointer. If an error occurs on either the read pointer or the write pointer, the error will in all probability be propagated into the computer system.
- the read and write pointers are typically controlled by a memory controller circuit. It can be critical that the memory controller circuit have error detection designed therein. In a typical system, the read pointer and the write pointer will each be controlled by a counter and other peripheral circuitry.
- a duplicate set of pointer/counters may be provided in addition to the primary set.
- a duplicate read counter may also be incremented.
- a primary write counter may also be incremented.
- a first comparator may be coupled to the outputs of the primary and the duplicate read counters and a second comparator may be coupled to the output of the primary and duplicate write counters. If either the first comparator or the second comparator detects that the primary counter differs from the duplicate counter, an error signal may be generated.
- both the primary and duplicate read counters may go undetected. This may not be as unlikely as it first might seem because typically the respective inputs of the primary and duplicate counters are tied together. Therefore if an error occurs on an input signal to the counters, both the primary and duplicate counters may propagate the error. For example, if a glitch occurs on an ENABLE or a COUNT input to the counters, both counters may inadvertently increment. This error may eventually be returned to the computer system in a stack read operation.
- the present invention overcomes the disadvantages found in the prior art by providing a means for detecting an error on a write pointer or a 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 may not be detected by the error detection schemes discussed above. In addition, the present invention eliminates the need to duplicate the read and write counters and the need for their associated comparators thereby potentially saving considerable system cost, size and power.
- One embodiment of the present invention comprises a tracking counter which tracks the relative difference between the position of the write pointer and the position of the read pointer. This relative difference can be compared to a programmable maximum offset value to determine if the relative positions of the read pointer and write pointer exceed a predefined limit.
- the relative difference provided by the tracking counter may be added to the read pointer to obtain an "expected" write pointer value.
- the "expected" write pointer value can be compared to the actual write pointer value to determine if an error has occurred. If the expected write pointer value exceeds the actual write pointer value, an over-run fault may be issued. In any event, if the "expected" write pointer value does not equal the actual write pointer value, a pointer fault may be issued.
- the tracking counter may increment every time the write pointer increments. Similarly, the tracking counter may decrement every time the read pointer increments. The tracking counter thereby tracks the difference between the write pointer and the read pointer. As can readily be seen, when no errors exist the tracking counter value plus the read counter will equal the write pointer value as discussed above.
- the tracking counter of the exemplary embodiment may have the capability to increment and decrement within the same clock cycle. This may be accomplished by incrementing the tracking counter on the first half of the cycle and decrementing the tracking counter on the second half of the cycle. It is also contemplated that the tracking counter could be decremented on the first half of the cycle and incremented on the second half of the cycle.
- the exemplary embodiment of the present invention may require the addition of one tracking counter and one comparator.
- the redundancy approach discussed above requires at least two redundant counters and two redundant comparators. Therefore, the present invention may require much less overhead, power, and physical space to be implemented than a redundancy approach.
- the present invention may be combined with a parity scheme and/or a redundancy approach to further improve the error detection effectiveness of a system.
- FIG. 1 is a block diagram of an exemplary embodiment of the stack read/write counter through checking circuit of the present invention
- FIG. 2A is the first of two portions of a flow diagram illustrating the operation of the exemplary embodiment of the present invention shown in FIG. 1;
- FIG. 2B is the second of two portions of the flow diagram illustrating the operation of the exemplary embodiment of the present invention shown in FIG. 1;
- FIG. 3 is a timing diagram of the exemplary embodiment of the present invention shown in FIG. 1.
- FIG. 1 is a block diagram of an exemplary embodiment of the stack read/write counter through checking circuit of the present invention.
- an exemplary embodiment of the present invention can check the integrity of a read pointer and a write pointer in a stack memory configuration. It is recognized that the present invention is applicable to any memory having more than one access pointer.
- MEM-CNTL 27 controls the operation of the read pointer and the write pointer.
- MEM-CNTL 27 is coupled to flip-flop 18 via interface WT-PTR-CNTL 58 and further coupled to flip-flop 16 via interface RD-PTR-CNTL 60.
- MEM-CNTL 27 may set flip-flop 18 to increment the write pointer.
- MEM-CTRL 27 may set flip-flop 16 to increment the read pointer. It is contemplated that MEM-CTRL 27 may simultaneously set flip-flop 18 and flip-flop 16 thereby incrementing both the write pointer and the read pointer.
- Flip-flop 18 is coupled to WT-PTR 14 via interface 54.
- WT-PTR 14 generates the write pointer for use by a memory 10.
- WT-PTR 14 may be a counter which may be incremented by setting INC-WT-PNTR 54.
- WT-PTR 14 is coupled to memory 10 via interface 52.
- WT-PTR 14 increments the write pointer value.
- flip-flop 16 is coupled to RD-PTR 12 via interface 56.
- RD-PTR 12 generates the read pointer address for memory 10.
- RD-PTR 12 may be a counter which may be incremented by setting INC-RD-PNTR 56.
- RD-PTR 12 is coupled to memory 10 via interface 50.
- MEM-CNTL 27 controls the operation of the write pointer and the read pointer such that valid data may be written and read from memory 10.
- Flip-flop 18 is coupled to dual data flip-flop 22 via interface 62.
- Dual data flip-flop 22 may comprise two independent storage elements each having independent enable and data input ports. The outputs of the two independent storage elements may be coupled together at interface 68.
- Flip-flop 18 is coupled to the data input of a first storage element within dual data flip-flop 22.
- the data input of a second storage element within dual data flip-flop 22 is coupled to ground in the preferred embodiment.
- the enable port of the first storage element within the dual data flip-flop 22 is coupled to an EN1 port 101 via interface 98.
- the enable port of the second storage element within dual data flip-flop 22 is coupled to an EN2 port 97 via interface 96.
- a dual data flip-flop 22 is utilized so that a tracking counter 26 may be decremented in a first half of a clock cycle and incremented in a second half of a clock cycle.
- the operation of, and reasons for utilizing the dual data flip-flop 22, will become clear later.
- Flip-flop 16 is coupled to dual data flip-flop 20 via interface 64.
- dual data flip-flop 20 is substantially the same as dual data flip-flop 22.
- Dual data flip-flop 20 may comprise two independent storage elements wherein the outputs of the two storage elements may be coupled together at interface 66.
- Flip-flop 16 is coupled to the data input of a first storage element within dual data flip-flop 20.
- the data input of the second storage element in dual data flip-flop 20 may be coupled to ground in the preferred embodiment.
- the enable input of the first storage element within dual data flip-flop 20 is coupled to EN2 port 97 via interface 96.
- the enable port of the second storage element within dual data flip-flop 20 is coupled to EN1 port 101 via interface 98.
- EN2 port 97 enables the first storage element within dual data flip-flop 20 and the second storage element within dual data flip-flop 22.
- a controller circuit may force EN2 port 97 active during a first half of a clock cycle.
- dual data flip-flop 22 may impose a logic zero on interface 68 and dual data flip-flop 20 may impose the value contained in flip-flop 16 on interface 66 during a first half of a clock cycle.
- a controller circuit may force the EN1 port 101 active and the EN2 port 97 inactive. This may enable the second storage element within dual data flip-flop 20 and the first storage element within dual data flip-flop 22.
- dual data flip-flop 20 imposes a logic zero on interface 66 during the second half of the cycle.
- Dual data flip-flop 22 imposes the value contained in flip-flop 18 on interface 68 during the second half of the clock cycle.
- Dual data flip-flop 20 is coupled to OR-GATE 24 via interface 66.
- Dual data flip-flop 22 is coupled to OR-GATE 24 via interface 68.
- OR-GATE 24 is coupled to the enable input of tracking counter 26 via interface 70.
- An up/down input port of tracking counter 26 is coupled to the output port of dual data flip-flop 22 via interface 68.
- tracking counter 26 is enabled during the first half of the clock cycle if flip-flop 16 is set.
- dual data flip-flop 22 may impose a logic zero on interface 68 during the first half of the clock cycle thus causing the up/down input port of tracking counter 26 to be a logic low.
- tracking counter 26 counts down.
- tracking counter 26 counts up. Therefore, during the first half of the clock cycle, tracking counter 26 is enabled and counts down if flip-flop 16 is set via MEM-CNTL 27.
- tracking counter 26 is incremented when the write pointer is incremented via INC-WT-PTR 54. Similarly, tracking counter 26 is decremented when the read pointer is incremented via INC-RD-PTR 56. Therefore, tracking counter 26 may keep track of the difference between the read pointer and the write pointer. Dual data flip-flop 20 and dual data flip-flop 22 allow tracking counter 26 to handle the situation where both the read pointer and the write pointer are incremented in the same clock cycle. However, it is not necessary for the operation of the exemplary embodiment that the read pointer and the write pointer be active during the same clock cycle.
- Tracking counter 26 is coupled to register 28 via interface 72.
- Register 28 is coupled to comparator 30 via interface 74.
- Comparator 30 compares the value contained in register 28 with a programmable maximum offset value imposed by a controller circuit on interface 76. If comparator 30 determines that the value contained in register 28 is larger than the maximum offset value imposed on interface 76, an offset fault is imposed on interface 78. Comparator 30 allows the user to detect when the write pointer and the read pointer differ by more than a maximum programmable offset value.
- Register 28 is also coupled to a first input of adder 36 via interface 80.
- a second input of adder 36 is coupled to a register 32 via interface 88.
- Register 32 is further coupled to READ-PTR 12 via interface 82.
- Adder 36 adds the value generated by tracking counter 26 to the corresponding read pointer value generated by RD-PTR 12 and imposed on READ-PTR 82.
- Adder 36 is coupled to a first input of a comparator 38 via interface 90.
- a second input of comparator 38 is coupled to a register 34 via interface 86.
- Register 34 is coupled to WRITE-PTR 14 via interface 84.
- Comparator 38 compares the output of adder 36 with the corresponding write pointer value produced by WT-PTR 14 and imposed on WRITE-PTR 84.
- comparator 38 determines that the output of adder 36 is not equal to the contents of register 34, comparator 38 issues a pointer fault on interface 94. In addition, if comparator 38 determines that the output of adder 36 is larger than the write pointer contained in register 34, comparator 38 issued an over-run fault on interface 92.
- registers 28, 32, and 34 may be omitted from the exemplary embodiment and still obtain similar results. It is also recognized that the present invention may be implemented in other ways other than the exemplary embodiment of FIG. 1.
- FIG. 2A is the first of two portions of a flow diagram illustrating the operation of the exemplary embodiment of the present invention as shown in FIG. 1.
- FIG. 2B is the second of two portions of the flow diagram illustrating the operation of the exemplary embodiment of the present invention as shown in FIG. 1.
- Block 112 initiates the read/write circuitry with predetermined values.
- Block 112 is coupled to block 114 via interface 146.
- Block 114 initiates the memory control circuit operation including MEM-CTRL 27 (see FIG. 1).
- MEM-CTRL 27 may be coupled to, and controlled by, other circuitry such as a microprocessor (not shown).
- Block 114 is coupled to block 116 via interface 148.
- Block 116 determines whether there is an interrupt or fault signal from the stack checking circuitry of the present invention. If there is not an interrupt signal detected, control is passed to block 118 via interface 152. Block 118 continues the memory control circuit operation and passes control back to block 116 via interface 150. This loop continues until an interrupt is detected by block 116. If there is an interrupt detected by block 116, control is passed to stop block 120 via interface 154. Stop block 120 exits the algorithm.
- Block 122 monitors WT-PTR-CNTL 58 and RD-PTR-CNTL 60.
- Block 122 is coupled to block 124 via interface 158.
- Block 124 determines whether MEM-CNTL 27 set WT-PTR-CNTL 58 thereby incrementing the write pointer. If MEM-CNTL 27 did set WT-PTR-CNTL 58, control is passed to block 126 via interface 160. Block 126 increments a tracking counter. If block 124 determined that WT-PTR-CNTL 58 was not set, control is passed to block 128 via interface 164 bypassing block 126.
- Block 128 determines whether PTR-CNTL 27 set RD-PTR-CNTL 60 thereby incrementing the read pointer. If block 128 determined that the read pointer was incremented, control is passed to block 130 via interface 166. Block 130 decrements the tracking counter. If block 128 determined that RD-PTR-CNTL 60 was not set by PTR-CNTL 27, control is passed to block 132 via interface 165 thereby bypassing block 130. Block 132 compares the output of the tracking counter with a programmable maximum offset value. Control is then passed to block 136 via interface 170. Block 136 determines whether the output of the tracking counter is greater than the maximum offset value. If it is, control is passed to block 142 via interface 172. Block 142 issues an offset fault and interrupt. The offset fault and interrupt are passed to block 116 via interface 156.
- Block 136 determines that the output of the tracking counter is not greater than a maximum offset value
- control is passed to block 138 via interface 176.
- Block 138 adds the read pointer to the output of the tracking counter.
- Control is then passed to block 140 via interface 178.
- Block 140 compares the output of the adder to the write pointer. Control is then passed to block 200 (see FIG. 2b).
- block 200 determines whether the output of the adder in block 138 is greater than the value of the write pointer. If the output of the adder is greater than the value of the write pointer, control is passed to Block 204 via interface 214. Block 204 issues an over-run fault and interrupt to block 116 via interface 156.
- Block 202 determines whether the output of the adder is equal to the value of the write pointer. If it is determined that the output of the adder is not equal to the write pointer, control is passed to block 206 via interface 210. Block 206 issues a pointer fault and interrupt to block 116 via interface 156.
- control is passed back to block 122 (see FIG. 2a) via interface 212.
- the loop from block 122 to block 202 is continued until an interrupt is issued by blocks 142, 204, or 206.
- FIG. 3 is a timing diagram of the exemplary embodiment of the present invention shown in FIG. 1.
- the signal names listed on the left hand side of FIG. 3 correspond to the signal names in FIG. 1.
- a plurality of clock pulses are shown on the clock signal 229.
- all storage elements may be edged triggered devices.
- Flip-flop 18 controls INC-WT-PTR signal 245.
- flip-flop 16 controls INC-RD-PTR signal 267.
- the particular wave forms for signals 245 and 267 in FIG. 3 are exemplary to help illustrate the functionality of the embodiment of FIG. 1.
- a WRITE-PTR signal 279 is produced by WT-PTR 14.
- WT-PTR 14 is triggered on the negative edge of the clock signal 229.
- the WRITE-PTR signal 279 is incremented from a logic-0 to a logic-1 at time 230 because INC-WT-PTR signal 245 is a logic-1 at point 246 indicating to WT-PTR 14 to increment the write pointer value.
- WRITE-PTR signal 279 is not incremented at point 282 because INC-WT-PTR signal 245 is a logic-0 at time 232 thus indicating to WT-PTR 14 to not increment the write pointer value.
- WRITE-PTR signal 279 is incremented from a logic-1 to a logic-2 because INC-WT-PTR signal 245 is a logic-1 at point 248.
- WRITE-PTR signal 279 is incremented from a logic-2 to a logic-3 at point 286 because INC-WT-PTR 245 is a logic-1 at point 250.
- WRITE-PTR signal 279 is incremented from a logic-3 to a logic-4 at point 292 because INC-WT-PTR 252 is a logic-1 at point 252 indicating to WT-PTR 14 to increment the write pointer value.
- the R-WT-PTR signal 293 is a delayed copy of WRITE-PTR signal 279. Points 280, 284, 286, and 292 of WRITE-PTR signal 79 correspond to points 294, 296, 298, and 300 of R-WT-PTR signal 293, respectively.
- Read-PTR signal 301 is the output of RD-PTR 12 and is controlled by the INC-RD-PTR signal 267.
- Read-PTR signal 301 increments from a logic-0 to a logic-1 at point 302 because INC-RD-PTR signal 267 is a logic-1 at point 260.
- Read-PTR 301 increments from a logic-1 to a logic-2 at point 304 because INC-RD-PTR signal 267 is a logic-1 at point 266.
- the R-RD-PTR signal 305 is a delayed copy of Read-PTR signal 301. Points 302 and 304 of Read-PTR signal 301 correspond to points 306 and 308 on R-RD-PTR signal 305, respectively.
- the tracking counter signal 309 increments from a logic-0 to a logic-1 at point 310 because INC-WT-PTR signal 245 is a logic-1 at point 246. Tracking counter signal 309 increments from a logic-1 to a logic-2 at point 312 because INC-WT-PTR signal 245 is a logic-1 at point 248. Similarly, tracking counter signal 309 increments from a logic-2 to a logic-3 at point 314 because INC-WT-PTR signal 245 is a logic-1 at point 250.
- Points 310, 312, and 314 of tracking counter signal 309 occur on the falling edge of clock signal 229.
- the falling edge of clock signal 229 represents the beginning of the second half of the clock cycle.
- the tracking counter signal 309 decrements from a logic-3 to a logic-2 at point 316 because INC-RD-PTR signal 267 is a logic-1 at point 264. This transition occurs at time 240 on the rising edge of the clock signal 229.
- tracking counter signal 309 is incremented from a logic-2 to a logic-3 at point 318 because INC-WT-PRT signal 245 is a logic-1 at point 252.
- tracking counter signal 309 is decremented during the first half of the clock cycle, and incremented during the second half of the clock cycle. Finally, tracking counter signal 309 is decremented from a logic-3 to a logic-2 at point 320 because INC-RD-PTR signal 267 is a logic-1 at time 242.
- a tracking counter register signal 321 is clocked on every falling edge of clock signal 229 thereby capturing the value of tracking counter signal 309 at these times.
- Tracking counter register signal 321 changes from a logic-0 to a logic-1 at point 322 because tracking counter signal 309 is a logic-1 at time 232.
- Tracking counter register signal 321 changes from a logic-1 to a logic-2 at point 324 because tracking counter signal 309 is a logic-2 at time 236.
- Tracking counter register signal 321 changes from a logic-2 to a logic-3 at point 326 because tracking counter signal 309 is a logic-3 at time 238.
- Tracking counter register signal 321 changes from a logic-3 to a logic-2 at point 238 because tracking counter signal 309 is a logic-2 at time 241.
- Tracking counter register signal 321 changes from a logic-2 to a logic-2 (no change) at point 330 because tracking counter signal 309 is a logic-2 at time 244.
- the R-PTR PLUS TRACKING COUNTER signal 331 comprises the addition of the R-RD-PRT signal 305 and tracking counter register signal 321. Up to point 306 of R-RD-PTR signal 305, R-PTR PLUS TRACKING COUNTER signal 331 tracks tracking counter register signal 321. This is a result of having a logic-0 on R-RD-PTR 305 until point 306. However, at point 306 R-RD-PTR changes from a logic-0 to a logic-1. This results in a logic-3 at point 338 of R-PTR PLUS TRACKING COUNTER signal 331 because a logic-1 exists on R-RD-PTR signal 305 and a logic-2 exists on the tracking counter register signal 321 at time 241.
- R-PTR PLUS TRACKING COUNTER signal 331 changes from a logic-3 to a logic-4 at point 340. This occurs because a logic-2 exists on R-RD-PTR signal 305 and a logic-2 exists on the tracking counter register signal 321 at time 244.
- the exemplary embodiment of the present invention has a comparator for comparing R-WT-PTR signal 293 with R-PTR PLUS TRACKING COUNTER signal 331. If the comparator determines inequality between these two signals, the comparator may issued a pointer fault. If the comparator determines that R-PTR PLUS TRACKING COUNTER signal 331 is greater than R-WT-PTR signal 293, the comparator may issue an over-run fault.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
Claims (22)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/233,232 US5471487A (en) | 1994-04-26 | 1994-04-26 | Stack read/write counter through checking |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US08/233,232 US5471487A (en) | 1994-04-26 | 1994-04-26 | Stack read/write counter through checking |
Publications (1)
Publication Number | Publication Date |
---|---|
US5471487A true US5471487A (en) | 1995-11-28 |
Family
ID=22876439
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US08/233,232 Expired - Lifetime US5471487A (en) | 1994-04-26 | 1994-04-26 | Stack read/write counter through checking |
Country Status (1)
Country | Link |
---|---|
US (1) | US5471487A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5706423A (en) * | 1994-09-12 | 1998-01-06 | Nec Corporation | Data processor having data bus and instruction fetch bus provided separately from each other |
US5805930A (en) * | 1995-05-15 | 1998-09-08 | Nvidia Corporation | System for FIFO informing the availability of stages to store commands which include data and virtual address sent directly from application programs |
US6473818B1 (en) * | 1998-09-09 | 2002-10-29 | Advanced Micro Devices, Inc. | Apparatus and method in a network interface device for asynchronously generating SRAM full and empty flags using coded read and write pointer values |
US20070101089A1 (en) * | 2005-11-01 | 2007-05-03 | Lsi Logic Corporation | Pseudo pipeline and pseudo pipelined SDRAM controller |
US20090328231A1 (en) * | 2006-07-20 | 2009-12-31 | Gemalto Sa | Method of dynamic protection of data during the execution of a software code in intermediate language in a digital apparatus |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4175287A (en) * | 1978-01-23 | 1979-11-20 | Rockwell International Corporation | Elastic store slip control circuit apparatus and method for preventing overlapping sequential read and write operations |
US4507760A (en) * | 1982-08-13 | 1985-03-26 | At&T Bell Laboratories | First-in, first-out (FIFO) memory configuration for queue storage |
US4692893A (en) * | 1984-12-24 | 1987-09-08 | International Business Machines Corp. | Buffer system using parity checking of address counter bit for detection of read/write failures |
US4833651A (en) * | 1986-07-24 | 1989-05-23 | National Semiconductor Corporation | High-speed, asynchronous, No-Fall-Through, first-in-first out memory with high data integrity |
US4933932A (en) * | 1987-12-24 | 1990-06-12 | Etat Francais represente par le Ministre des Postes et Telecommunications et de l'Espace (Centre National d'Etudes des Telecommunications) | Buffer queue write pointer control circuit notably for self-channelling packet time-division switching system |
US5210749A (en) * | 1990-05-29 | 1993-05-11 | Advanced Micro Devices, Inc. | Configuration of srams as logical fifos for transmit and receive of packet data |
US5267191A (en) * | 1989-04-03 | 1993-11-30 | Ncr Corporation | FIFO memory system |
US5274647A (en) * | 1989-02-13 | 1993-12-28 | Kabushiki Kaisha Toshiba | Elastic buffer with error detection using a hamming distance circuit |
-
1994
- 1994-04-26 US US08/233,232 patent/US5471487A/en not_active Expired - Lifetime
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4175287A (en) * | 1978-01-23 | 1979-11-20 | Rockwell International Corporation | Elastic store slip control circuit apparatus and method for preventing overlapping sequential read and write operations |
US4507760A (en) * | 1982-08-13 | 1985-03-26 | At&T Bell Laboratories | First-in, first-out (FIFO) memory configuration for queue storage |
US4692893A (en) * | 1984-12-24 | 1987-09-08 | International Business Machines Corp. | Buffer system using parity checking of address counter bit for detection of read/write failures |
US4833651A (en) * | 1986-07-24 | 1989-05-23 | National Semiconductor Corporation | High-speed, asynchronous, No-Fall-Through, first-in-first out memory with high data integrity |
US4933932A (en) * | 1987-12-24 | 1990-06-12 | Etat Francais represente par le Ministre des Postes et Telecommunications et de l'Espace (Centre National d'Etudes des Telecommunications) | Buffer queue write pointer control circuit notably for self-channelling packet time-division switching system |
US5274647A (en) * | 1989-02-13 | 1993-12-28 | Kabushiki Kaisha Toshiba | Elastic buffer with error detection using a hamming distance circuit |
US5267191A (en) * | 1989-04-03 | 1993-11-30 | Ncr Corporation | FIFO memory system |
US5210749A (en) * | 1990-05-29 | 1993-05-11 | Advanced Micro Devices, Inc. | Configuration of srams as logical fifos for transmit and receive of packet data |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5706423A (en) * | 1994-09-12 | 1998-01-06 | Nec Corporation | Data processor having data bus and instruction fetch bus provided separately from each other |
US5958074A (en) * | 1994-09-12 | 1999-09-28 | Nec Corporation | Data processor having data bus and instruction fetch bus provided separately from each other |
US5805930A (en) * | 1995-05-15 | 1998-09-08 | Nvidia Corporation | System for FIFO informing the availability of stages to store commands which include data and virtual address sent directly from application programs |
US6473818B1 (en) * | 1998-09-09 | 2002-10-29 | Advanced Micro Devices, Inc. | Apparatus and method in a network interface device for asynchronously generating SRAM full and empty flags using coded read and write pointer values |
US20070101089A1 (en) * | 2005-11-01 | 2007-05-03 | Lsi Logic Corporation | Pseudo pipeline and pseudo pipelined SDRAM controller |
US7681017B2 (en) * | 2005-11-01 | 2010-03-16 | Lsi Corporation | Pseudo pipeline and pseudo pipelined SDRAM controller |
US20090328231A1 (en) * | 2006-07-20 | 2009-12-31 | Gemalto Sa | Method of dynamic protection of data during the execution of a software code in intermediate language in a digital apparatus |
US8646092B2 (en) * | 2006-07-20 | 2014-02-04 | Gemalto Sa | Method of dynamic protection of data during the execution of a software code in intermediate language in a digital apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5504859A (en) | Data processor with enhanced error recovery | |
US5555250A (en) | Data error detection and correction system | |
EP0363863B1 (en) | Method and apparatus for fault recovery in a digital computing system | |
EP0032957B1 (en) | Information processing system for error processing, and error processing method | |
US4942575A (en) | Error connection device for parity protected memory systems | |
US5471487A (en) | Stack read/write counter through checking | |
US10108486B2 (en) | Error protection | |
US20090249174A1 (en) | Fault Tolerant Self-Correcting Non-Glitching Low Power Circuit for Static and Dynamic Data Storage | |
US7380165B2 (en) | Assembly of electronic circuits comprising means for decontaminating error-contaminated parts | |
JPH0594377A (en) | Parity detecting circuit | |
EP0579375B1 (en) | Difference flag circuit with offset counter | |
EP0492072A1 (en) | Data transfer bus system and method serving multiple parallel asynchronous units | |
US3046523A (en) | Counter checking circuit | |
US5835511A (en) | Method and mechanism for checking integrity of byte enable signals | |
EP0390892B1 (en) | Activity verification system for memory or logic | |
EP0319183B1 (en) | Parity regeneration self-checking | |
EP0804762B1 (en) | Self-diagnostic asynchronous data buffers | |
US20240185938A1 (en) | Glitch detection | |
JP2744298B2 (en) | Failure detection method for buffer control counting circuit | |
US6996015B2 (en) | First-in first-out memory system with single bit collision detection | |
JP3281982B2 (en) | Data buffer | |
JP2536781B2 (en) | Parity check device | |
GB2158622A (en) | Computer controlled systems | |
KR960004061B1 (en) | Non-stop self diagnostic apparatus | |
SU1005060A2 (en) | Device for checking command memory-processor data channel |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: UNISYS CORPORATION, PENNSYLVANIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:ANDRIGHETTI, ROBERT H.;REEL/FRAME:006972/0997 Effective date: 19940425 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
FPAY | Fee payment |
Year of fee payment: 12 |
|
AS | Assignment |
Owner name: UNISYS CORPORATION, PENNSYLVANIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:023312/0044 Effective date: 20090601 Owner name: UNISYS HOLDING CORPORATION, DELAWARE Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:023312/0044 Effective date: 20090601 Owner name: UNISYS CORPORATION,PENNSYLVANIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:023312/0044 Effective date: 20090601 Owner name: UNISYS HOLDING CORPORATION,DELAWARE Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:023312/0044 Effective date: 20090601 |
|
AS | Assignment |
Owner name: UNISYS CORPORATION, PENNSYLVANIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:023263/0631 Effective date: 20090601 Owner name: UNISYS HOLDING CORPORATION, DELAWARE Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:023263/0631 Effective date: 20090601 Owner name: UNISYS CORPORATION,PENNSYLVANIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:023263/0631 Effective date: 20090601 Owner name: UNISYS HOLDING CORPORATION,DELAWARE Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:CITIBANK, N.A.;REEL/FRAME:023263/0631 Effective date: 20090601 |
|
AS | Assignment |
Owner name: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERA Free format text: PATENT SECURITY AGREEMENT (PRIORITY LIEN);ASSIGNOR:UNISYS CORPORATION;REEL/FRAME:023355/0001 Effective date: 20090731 |
|
AS | Assignment |
Owner name: DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERA Free format text: PATENT SECURITY AGREEMENT (JUNIOR LIEN);ASSIGNOR:UNISYS CORPORATION;REEL/FRAME:023364/0098 Effective date: 20090731 |
|
AS | Assignment |
Owner name: GENERAL ELECTRIC CAPITAL CORPORATION, AS AGENT, IL Free format text: SECURITY AGREEMENT;ASSIGNOR:UNISYS CORPORATION;REEL/FRAME:026509/0001 Effective date: 20110623 |
|
AS | Assignment |
Owner name: UNISYS CORPORATION, PENNSYLVANIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:DEUTSCHE BANK TRUST COMPANY;REEL/FRAME:030004/0619 Effective date: 20121127 |
|
AS | Assignment |
Owner name: UNISYS CORPORATION, PENNSYLVANIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:DEUTSCHE BANK TRUST COMPANY AMERICAS, AS COLLATERAL TRUSTEE;REEL/FRAME:030082/0545 Effective date: 20121127 |
|
AS | Assignment |
Owner name: UNISYS CORPORATION, PENNSYLVANIA Free format text: RELEASE BY SECURED PARTY;ASSIGNOR:WELLS FARGO BANK, NATIONAL ASSOCIATION (SUCCESSOR TO GENERAL ELECTRIC CAPITAL CORPORATION);REEL/FRAME:044416/0358 Effective date: 20171005 |