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

Processing system and method including lock buffer for controlling exclusive critical problem accesses by each processor

Assignee: Advanced Micro Devices Inc
•
Filing: 1991-05-30
•
Granted: 1993-08-17
•
Expires: 2011-05-30
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract There is described a system and method for use in a processing system of the type including a plurality of processor subsystems, each processor subsystem including a processor, and being coupled together and to a shared memory by a common bus, wherein the system and method permits exclusive execution of critical sections by each of the processors. A lock buffer associated with each of the processors caches the value of the interlock variable and a control section locally tests the stored interlock variable value responsive to an instruction from its processor. If the control section determines that the interlock variable has the available value, it causes the available value of the interlock variable to be conveyed to its associated processor and the busy value to be written to the local lock buffer and over the common bus to the shared memory under a write-through policy and for updating each lock buffer associated with the other processors under a write-update policy. When its processor completes its critical section, the control section causes the available value of the interlock variable to be written to the local lock buffer and over the common bus to the shared memory so that the other lock buffers update their stored values of the interlock variable to the available value.

Inventors

  • 👤 Stephen P. Horne
  • 👤 Seungyoon Song

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-10-31 21:15
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/52; G06F15/00; G06F15/16; G06F15/163; G06F15/167

Claims Analysis

Total Claims: 26
Claim 1
Independent Claim 496 words
A processing system of the type including a plurality of processor subsystems, a memory shared by said plurality of processor subsystems, and a common bus coupling said plurality of processor subsystems together and to said shared memory, said processing system including a program store means for storing program instructions, said program instructions including at least one critical program section, said processing system being arranged to permit only one selected processor subsystem of said plurality of processor subsystems to execute a selected critical program section of said at least one critical program section at a time wherein said execution of said selected critical program section requires the use of processing system resources shared with at least one processor subsystem of said plurality of processor subsystems other than said selected processor subsystem, said processing system comprising: a processor associated with each of said plurality of processor subsystems for receiving selected program instructions from said program store means and executing said selected program instructions; a memory portion within said shared memory for storing an interlock variable value, said interlock variable value being a busy value indicating that one processor subsystem of said plurality of processor subsystems is currently executing a critical program section of said at least one critical program section or an available value indicating that none of said processor subsystems of said plurality of processor subsystems is currently executing a critical program section of said at least one critical program section; a respective lock buffer means associated with said associated processor of each respective processor subsystem of said plurality of processor subsystems, each said respective lock buffer means being dedicated for storing said interlock variable value, each said respective lock buffer means being coupled to said common bus and to said associated processor; and a respective control means associated with each said respective processor subsystem and being responsive to a command instruction from said associated processor indicating the start of a respective critical program section of said at least one critical program section for detecting said interlock variable value stored in said respective lock buffer means; said respective control means responding to detection of said busy value of said stored interlock variable value by causing the conveyance to said associated processor of said detected busy value to preclude said associated processor from entering said respective critical program section; said respective control means responding to detection of said available value of said stored interlock variable value by causing the conveyance of said detected available value to said associated processor to permit said associated processor to execute said respective critical program section, and by causing the conveyance of said busy value of said interlock variable value to said respective lock buffer and causing the conveyance of said busy value of said interlock variable value over said common bus to said memory portion of said shared memory and to said lock buffer means associated with other said processor subsystems of said plurality of processor subsystems than said respective processor subsystem.
Claim 2
Dependent Claim 496 words
A processing system of the type including a plurality of processor subsystems, a memory shared by said plurality of processor subsystems, and a common bus coupling said plurality of processor subsystems together and to said shared memory, said processing system including a program store means for storing program instructions, said program instructions including at least one critical program section, said processing system being arranged to permit only one selected processor subsystem of said plurality of processor subsystems to execute a selected critical program section of said at least one critical program section at a time wherein said execution of said selected critical program section requires the use of processing system resources shared with at least one processor subsystem of said plurality of processor subsystems other than said selected processor subsystem, said processing system comprising: a processor associated with each of said plurality of processor subsystems for receiving selected program instructions from said program store means and executing said selected program instructions; a memory portion within said shared memory for storing an interlock variable value, said interlock variable value being a busy value indicating that one processor subsystem of said plurality of processor subsystems is currently executing a critical program section of said at least one critical program section or an available value indicating that none of said processor subsystems of said plurality of processor subsystems is currently executing a critical program section of said at least one critical program section; a respective lock buffer means associated with said associated processor of each respective processor subsystem of said plurality of processor subsystems, each said respective lock buffer means being dedicated for storing said interlock variable value, each said respective lock buffer means being coupled to said common bus and to said associated processor; and a respective control means associated with each said respective processor subsystem and being responsive to a command instruction from said associated processor indicating the start of a respective critical program section of said at least one critical program section for detecting said interlock variable value stored in said respective lock buffer means; said respective control means responding to detection of said busy value of said stored interlock variable value by causing the conveyance to said associated processor of said detected busy value to preclude said associated processor from entering said respective critical program section; said respective control means responding to detection of said available value of said stored interlock variable value by causing the conveyance of said detected available value to said associated processor to permit said associated processor to execute said respective critical program section, and by causing the conveyance of said busy value of said interlock variable value to said respective lock buffer and causing the conveyance of said busy value of said interlock variable value over said common bus to said memory portion of said shared memory and to said lock buffer means associated with other said processor subsystems of said plurality of processor subsystems than said respective processor subsystem.
Claim 3
Dependent Claim 81 words
A processing system as defined in claim 1 wherein said respective control means are responsive to a critical program section complete instruction from said associated processor for causing said available value of said interlock variable to be conveyed to said respective lock buffer and to be conveyed over said common bus to said memory portion of said shared memory and said lock buffer means associated with other said processor subsystems of said plurality of processor subsystems than said respective processor subsystem.
Claim 4
Dependent Claim 86 words
A processing system as defined in claim 2 wherein each said respective control means include bus detecting means for detecting the availability of said common bus responsive to the detection of said available value of said interlock variable value in said respective lock buffer means prior to said busy value of said interlock variable value being conveyed over said common bus and wherein said busy value of said interlock variable value is conveyed over said common bus after said detecting said availability of said common bus.
Claim 5
Dependent Claim 48 words
A processing system as defined in claim 2 wherein said respective lock buffer means are each arranged to determine whether said respective lock buffer means contains a valid value of said interlock variable value prior to said detection of said interlock variable value by said respective control means.
Claim 6
Dependent Claim 46 words
A processing system as defined in claim 4 wherein said respective control means each includes bus detecting means for detecting the availability of said common bus responsive to detecting that said respective lock buffer means does not contain a valid value of said interlock variable value.
Claim 7
Dependent Claim 59 words
A processing system as defined in claim 5 wherein said respective control means is each arranged to cause said valid value of said interlock variable value to be conveyed over said common bus from said memory portion of said shared memory to said respective lock buffer means when said bus detecting means detects said availability of said common bus.
Claim 8
Dependent Claim 53 words
A processing system as defined in claim 6 wherein said respective control means are each arranged to detect the value of said interlock variable value in said respective lock buffer means after the conveyance of said interlock variable value to said respective lock buffer means from said memory portion of said shared memory.
Claim 9
Dependent Claim 43 words
A processing system as defined in claim 3 wherein each said respective control means are each arranged for detecting a change in said interlock variable value to said busy value while said bus detecting means detects for said availability of said common bus.
Claim 10
Dependent Claim 54 words
A processing system as defined in claim 8 wherein said bus detecting means are each arranged to terminate said detecting said availability of said common bus responsive to said control means detecting said change in said interlock variable value to said busy value prior to said detection of said availability of said common bus.
Claim 11
Dependent Claim 53 words
A processing system as defined in claim 9 wherein said respective control means are each arranged to cause said busy value to be conveyed to said associated processor responsive to detecting said busy value in said respective lock buffer means prior to said bus detecting means detecting said availability of said common bus.
Claim 12
Independent Claim 328 words
A method for use in a processing system of the type including a plurality of processors coupled to each other and to a shared memory over a common bus, said processing system further including a program store means for storing program instructions, each of said plurality of processors receiving selected program instructions from said program store and executing said selected program instructions, said program instructions including at least one critical program section requiring exclusive execution thereof, the method permitting exclusive execution of respective critical program sections of said at least one critical program section by respective processors of said plurality of processors and comprising the steps of: providing each said respective processor with a respective lock buffer means dedicated for storing an interlock variable value; storing within each said respective lock buffer means and within said shared memory said interlock variable value, said interlock variable value being either an available value indicating that none of said plurality of processors is currently executing a critical program section of said at least one critical program section or a busy value indicating that one of said plurality of processors is currently executing a critical program section of said at least one critical program section; detecting said interlock variable value in one of said respective lock buffer means responsive to a command instruction from its associated respective processor indicating the start of said respective critical program section; and conveying said available value of said interlock variable value to said associated respective processor and conveying, over said common bus, said busy value of said interlock variable value to said shared memory and to other said lock buffer means associated with other said processors of said plurality of processors than said associated respective processor, whereby said interlock variable value stored in said shared memory and stored in said other lock buffer means is updated to said busy value after detecting said available value of said interlock variable value in said respective lock buffer means.
Claim 13
Independent Claim 328 words
A method for use in a processing system of the type including a plurality of processors coupled to each other and to a shared memory over a common bus, said processing system further including a program store means for storing program instructions, each of said plurality of processors receiving selected program instructions from said program store and executing said selected program instructions, said program instructions including at least one critical program section requiring exclusive execution thereof, the method permitting exclusive execution of respective critical program sections of said at least one critical program section by respective processors of said plurality of processors and comprising the steps of: providing each said respective processor with a respective lock buffer means dedicated for storing an interlock variable value; storing within each said respective lock buffer means and within said shared memory said interlock variable value, said interlock variable value being either an available value indicating that none of said plurality of processors is currently executing a critical program section of said at least one critical program section or a busy value indicating that one of said plurality of processors is currently executing a critical program section of said at least one critical program section; detecting said interlock variable value in one of said respective lock buffer means responsive to a command instruction from its associated respective processor indicating the start of said respective critical program section; and conveying said available value of said interlock variable value to said associated respective processor and conveying, over said common bus, said busy value of said interlock variable value to said shared memory and to other said lock buffer means associated with other said processors of said plurality of processors than said associated respective processor, whereby said interlock variable value stored in said shared memory and stored in said other lock buffer means is updated to said busy value after detecting said available value of said interlock variable value in said respective lock buffer means.
Claim 14
Dependent Claim 54 words
A method as defined in claim 11 including the step of conveying said busy value of said interlock variable value to said associated respective processor when said interlock variable value stored in said respective lock buffer means is said busy value, thereby precluding said associated respective processor from entering said respective critical program section.
Claim 15
Dependent Claim 40 words
A method as defined in claim 11 comprising the further step of storing in each said respective lock buffer means a validity bit associated with said interlock variable value, said validity bit indicating the validity of said interlock variable value.
Claim 16
Dependent Claim 35 words
A method as defined in claim 13 comprising the further step of determining whether said respective lock buffer means contains a valid value of said interlock variable value prior to detecting said interlock variable value.
Claim 17
Dependent Claim 36 words
A method as defined in claim 14 comprising the further step of detecting whether said common bus is available when said respective lock buffer means does not contain a valid value of said interlock variable value.
Claim 18
Dependent Claim 31 words
A method as defined in claim 15 further comprising the step of reading a valid value of said interlock variable value from said shared memory when said common bus is available.
Claim 19
Dependent Claim 32 words
A method as defined in claim 16 comprising the further step of conveying said valid value of said interlock variable value read from said shared memory to said respective lock buffer means.
Claim 20
Dependent Claim 45 words
A method as defined in claim 17 comprising performing the step of detecting said interlock variable value contained within said respective lock buffer means after conveying said valid value of said interlock variable value read from said shared memory to said respective lock buffer means.
Claim 21
Dependent Claim 39 words
A method as defined in claim 11 comprising the further steps of detecting availability of said common bus after detecting said available value of said interlock variable value in said respective lock buffer means of said associated respective processor.
Claim 22
Dependent Claim 25 words
A method as defined in claim 19 comprising the further step of repeatedly detecting said interlock variable value while detecting availability of said common bus.
Claim 23
Dependent Claim 54 words
A method as defined in claim 20 comprising the further step of terminating said detecting availability of said common bus upon detecting that said interlock variable value stored in said respective lock buffer means of said associated respective processor has changed to said busy value prior to detecting said availability of said common bus.
Claim 24
Dependent Claim 56 words
A method as defined in claim 21 comprising the further step of conveying said busy value to said associated respective processor responsive to detecting that said interlock variable value stored in said respective lock buffer means of said associated respective processor has changed to said busy value prior to detecting said availability of said common bus.
Claim 25
Dependent Claim 47 words
A method as defined in claim 11 comprising the further step of conveying said busy value of said interlock variable value to said respective lock buffer means of said associated respective processor when conveying said available value of said interlock variable value to said associated respective processor.
Claim 26
Dependent Claim 69 words
A method as defined in claim 11 comprising the further steps of conveying said available value of said interlock variable value from said associated respective processor over said common bus to said respective lock buffer means, to said shared memory, and to said other lock buffer means for updating said interlock variable value to said available value responsive to said associated respective processor issuing a critical section complete instruction.

References Cited (Backward Citations)

US4488217A Cited
US4574350A Cited
US4587609A Cited
US4835672A Cited
US4982322A Cited
US4775955A Cited
US5115499A Cited
US5029070A Cited
US5060144A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 1996-08-16 1997-02-15 1997-08-17 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2000-08-16 2001-02-15 2001-08-17 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2004-08-16 2005-02-15 2005-08-17 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag