Patent US5146589A successfully refreshed from Google Patents.
← Back to Patent Explorer
US5146589A Expired / Lapsed US ⏱️ 0.0 years remaining

Refresh control for dynamic memory in multiple processor system

Assignee: Tandem Computers Inc
•
Filing: 1990-12-17
•
Granted: 1992-09-08
•
Expires: 2010-12-17
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract A computer system in a fault-tolerant configuration employs three identical CPUs executing the same instruction stream, with two identical, self-checking memory modules storing duplicates of the same data. Memory references by the three CPUs are made by three separate busses connected to three separate ports of each of the two memory modules. The three CPUs are loosely synchronized, as by detecting events such as memory references and stalling any CPU ahead of others until all execute the function simultaneously; interrupts can be synchronized by ensuring that all three CPUs implement the interrupt at the same point in their instruction stream. Memory references via the separate CPU-to-memory busses are voted at the three separate ports of each of the memory modules. Each CPU has a local memory, separate from the memory modules, and this local memory is of the dynamic type so it must be periodically refreshed. The refresh cycles are interposed at the same point in the instruction stream for each of the three CPUs by counting instruction execution cycles separately in each CPU, and interrupting to do a refresh cycle when a given count is reached. Stall cycles are also counted, and when long periods of stalls occur then more than one refresh cycle is interposed to catch up to the needed refresh schedule.

Inventors

  • 👤 Charles E. Peet, Jr.
  • 👤 John D. Allison
  • 👤 Kenneth C. Debacker
  • 👤 Robert W. Horst

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-28 16:37
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/30; G06F9/38; G06F9/3861; G06F9/3863; G06F11/00; G06F11/07; G06F11/0703; G06F11/0706; G06F11/0721; G06F11/0724; G06F11/16; G06F11/1629; G06F11/1641; G06F11/1658; G06F11/1666; G06F11/1675; G06F11/1683; G06F11/1687; G06F11/1691; G06F11/18; G06F11/183; G06F11/184; G06F11/185; G06F11/20; G06F11/2017; G06F9/3824; G06F9/3836; G06F9/3851; G06F9/3885; G06F11/0751; G06F11/0754; G06F11/0757; G06F11/08; G06F11/10; G06F11/1008; G06F11/14; G06F11/1402; G06F11/1405; G06F11/1415; G06F11/1679; G06F11/181; G06F11/182; G06F11/2015; G06F2201/00; G06F2201/85; G11; G11C; G11C29/00; G11C29/70; G11C29/74

Claims Analysis

Total Claims: 17
Claim 1
Independent Claim 182 words
A computer system, comprising: a) a plurality of CPUs each executing the same instruction stream, each CPU having a clock to define machine cycles, the CPUs being clocked independently of one another by said clocks, said machine cycles providing execution cycles when instructions of said instruction stream execute or providing stall cycles when an instructions of said instruction stream do not execute; b) each of the CPUs having a first counter to count execution cycles but not stall cycles, and having a second counter to count stall cycles; c) each of said CPUs having a local memory requiring periodic refresh; d) each of said CPUs having a separate refresh control responsive to a given count in said first counter of the CPU to initiate a refresh of said local memory of the CPU, and responsive to said second counter to perform a number of cycles of refresh of said local memory depending upon a selected count of the second counter, said refresh of said local memory occurring at the execution of an instruction in said instruction steam in all of said CPUs.
Claim 2
Dependent Claim 182 words
A computer system, comprising: a) a plurality of CPUs each executing the same instruction stream, each CPU having a clock to define machine cycles, the CPUs being clocked independently of one another by said clocks, said machine cycles providing execution cycles when instructions of said instruction stream execute or providing stall cycles when an instructions of said instruction stream do not execute; b) each of the CPUs having a first counter to count execution cycles but not stall cycles, and having a second counter to count stall cycles; c) each of said CPUs having a local memory requiring periodic refresh; d) each of said CPUs having a separate refresh control responsive to a given count in said first counter of the CPU to initiate a refresh of said local memory of the CPU, and responsive to said second counter to perform a number of cycles of refresh of said local memory depending upon a selected count of the second counter, said refresh of said local memory occurring at the execution of an instruction in said instruction steam in all of said CPUs.
Claim 3
Dependent Claim 24 words
A system according to claim 1 wherein said CPUs are loosely synchronized by voting access to a common memory accessable by all said CPUs.
Claim 4
Dependent Claim 22 words
A system according to claim 1 wherein there are three said CPUs and wherein said CPUs access a duplicated common global memory.
Claim 5
Independent Claim 165 words
A method of operating a computer system, comprising the steps of: a) executing instructions of the same instruction stream in each one of a plurality of CPUs, the CPUs each having a separate clock and being clocked independently of one another by said separate clocks to provide machine cycles including execution cycles and stall cycles, the CPUs executing said execution cycles when said instructions are ready for execution or executing said stall cycles when said instructions are not ready for execution; b) counting execution cycles but not stall cycles in each of the CPUs in a first counter, and counting stall cycles in each CPU in a second counter; c) each of said CPUs accessing a separate local memory requiring periodic refresh; d) and initiating refresh of said local memory separately for each CPU responsive to a given count in said first counter of each CPU and performing a number of cycles of refresh depending upon the count in said second counter of the CPU.
Claim 6
Independent Claim 165 words
A method of operating a computer system, comprising the steps of: a) executing instructions of the same instruction stream in each one of a plurality of CPUs, the CPUs each having a separate clock and being clocked independently of one another by said separate clocks to provide machine cycles including execution cycles and stall cycles, the CPUs executing said execution cycles when said instructions are ready for execution or executing said stall cycles when said instructions are not ready for execution; b) counting execution cycles but not stall cycles in each of the CPUs in a first counter, and counting stall cycles in each CPU in a second counter; c) each of said CPUs accessing a separate local memory requiring periodic refresh; d) and initiating refresh of said local memory separately for each CPU responsive to a given count in said first counter of each CPU and performing a number of cycles of refresh depending upon the count in said second counter of the CPU.
Claim 7
Dependent Claim 30 words
A method according to claim 4 wherein said step of initiating said refresh is done at execution of the same instruction in said instruction stream in each of said CPUs.
Claim 8
Dependent Claim 24 words
A method according to claim 4 wherein said CPUs are loosely synchronized by voting access to a common memory accessable by all said CPUs.
Claim 9
Dependent Claim 22 words
A method according to claim 4 wherein there are three said CPUs and wherein said CPUs access a duplicated common global memory.
Claim 10
Independent Claim 110 words
A method of refreshing a memory accessed by a processor, comprising the steps of: a) counting cycles during which said processor executes an instruction to provide a first count; b) counting cycles during which said processor is stalled to provide a second count; c) interrupting executing of instructions by said processor to refresh said memory when said first count reaches a selected value, said refresh of said memory upon said step of interrupting being for a number of refresh cycles determined by said second count, said number of refresh cycles being increased by one for each time the value of said second count exceeds the value of said first count.
Claim 11
Independent Claim 110 words
A method of refreshing a memory accessed by a processor, comprising the steps of: a) counting cycles during which said processor executes an instruction to provide a first count; b) counting cycles during which said processor is stalled to provide a second count; c) interrupting executing of instructions by said processor to refresh said memory when said first count reaches a selected value, said refresh of said memory upon said step of interrupting being for a number of refresh cycles determined by said second count, said number of refresh cycles being increased by one for each time the value of said second count exceeds the value of said first count.
Claim 12
Dependent Claim 33 words
A method according to claim 8 wherein said memory is a local memory and said processor also accesses a common memory, and including the step of accessing said common memory by another processor.
Claim 13
Independent Claim 143 words
A method of operating a computer system having a plurality of processors which are executing the same instruction stream, each of said processors making the same accesses to a separate local memory for the same data items, comprising the steps of: a) separately counting cycles during which each said processor executes an instruction to provide a first count for each processor; b) separately counting cycles during which each said processor is stalled to provide a second count for each processor; c) interrupting executing of instructions by each said processor to refresh said separate local memory for each said processor when said first count reaches a selected value, for a number of refresh cycles determined by said second count, said number of refresh cycles being increased by one for each time the value of said second count exceeds the value of said first count.
Claim 14
Independent Claim 143 words
A method of operating a computer system having a plurality of processors which are executing the same instruction stream, each of said processors making the same accesses to a separate local memory for the same data items, comprising the steps of: a) separately counting cycles during which each said processor executes an instruction to provide a first count for each processor; b) separately counting cycles during which each said processor is stalled to provide a second count for each processor; c) interrupting executing of instructions by each said processor to refresh said separate local memory for each said processor when said first count reaches a selected value, for a number of refresh cycles determined by said second count, said number of refresh cycles being increased by one for each time the value of said second count exceeds the value of said first count.
Claim 15
Dependent Claim 19 words
A method according to claim 10 including the step of accessing a common memory by each of said processors.
Claim 16
Dependent Claim 25 words
A method according to claim 11 wherein said step of accessing said common memory includes voting access requests from said processors to said common memory.
Claim 17
Dependent Claim 20 words
A method according to claim 11 including the step of clocking each of said processors separately by separate clock sources.

References Cited (Backward Citations)

US3602900A Cited
US3681578A Cited
US3735356A Cited
US3761884A Cited
US3810119A Cited
US3833798A Cited
US3848116A Cited
US3921149A Cited
US4432051A Cited
US4316245A Cited
US4015246A Cited
US4015243A Cited
US4034347A Cited
US4224664A Cited
US4672535A Cited
US4358823A Cited
US4187538A Cited
US4458307A Cited
US4234920A Cited
US4257097A Cited
US4253144A Cited
US4380046A Cited
US4315310A Cited
US4392199A Cited
US4426681A Cited
US4321666A Cited
US4330826A Cited
US4412218A Cited
US4493019A Cited
US4412281A Cited
US4392196A Cited
US4399504A Cited
US4375683A Cited
US4414624A Cited
US4430707A Cited
US4455605A Cited
US4438494A Cited
US4597084A Cited
US4616312A Cited
US4497059A Cited
US4783731A Cited
EP0104490A2 Cited
US4779008A Cited
US4667287A Cited
WO1984002001A1 Cited
US4648035A Cited
US4541094A Cited
US4591977A Cited
US4644498A Cited
US4661900A Cited
US4577272A Cited
US4646231A Cited
US4709325A Cited
US4912698A Cited
EP0141246A2 Cited
US4564903A Cited
US4783733A Cited
US4607365A Cited
US4570261A Cited
WO1985002698A1 Cited
US4816900A Cited
US4638427A Cited
US4633394A Cited
US4589066A Cited
US4823256A Cited
US4853872A Cited
US4827401A Cited
US4785453A Cited
US4757442A Cited
US4751639A Cited
US4683570A Cited
US4845419A Cited
US4733353A Cited
US4794601A Cited
US4703452A Cited
US4799140A Cited
US4868832A Cited
US4757505A Cited
US4763333B1 Cited
US4763333A Cited
US4819159A Cited
US4849979A Cited
US4774709A Cited
US4847837A Cited
US4831520A Cited
US4805107A Cited
US4933940A Cited
US4914657A Cited
EP0286856B1 Cited
US4800462A Cited
US4868826A Cited
US4868818A Cited
EP0316087A2 Cited
US4879716A Cited
US4907232A Cited
US4873685A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1995-09-08 1996-03-09 1996-09-08 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 1999-09-08 2000-03-09 2000-09-08 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2003-09-08 2004-03-09 2004-09-08 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag