US5193167A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Ensuring data integrity by locked-load and conditional-store operations in a multiprocessor system
Assignee: Hewlett Packard Development Co LP
•
Filing: 1990-06-29
•
Granted: 1993-03-09
•
Expires: 2010-06-29
Abstract
Abstract A high performance CPU of the RISC (reduced instruction set) type employs a standardized, fixed instruction size, and permits only simplified memory access data width and addressing modes. The instruction set is limited to register-to-register operations and register load/store operations. Byte manipulation instructions, included to permit use of previously-established data structures, include the facility for doing in-register byte extract, insert and masking, along with non-aligned load and store instructions. The provision of load/locked and store/conditional instructions permits the implementation of atomic byte writes.
Inventors
- 👤 Richard L. Sites
- 👤 Richard T. Witek
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-10-29 00:52
CPC Classifications
G; G06; G06F; G06F9/00; G06F9/06; G06F9/46; G06F9/30; G06F9/38; G06F9/3824; G06F9/383; G06F9/30003; G06F9/3004; G06F9/30072; G06F9/30076; G06F9/30087
Claims Analysis
Total Claims: 27
Claim 1
Independent Claim
169 words
A method of performing an atomic byte write in an operation of a processor, said atomic byte write being performed in a memory by way of a system bus external to said processor, said system bus connecting said processor to said memory, comprising the steps of: loading a content of a selected aligned multibyte external memory location from said memory to internal register means in said processor, said content including a non-aligned byte location to be written, and thereafter detecting on said system bus any other store to said selected aligned-multibyte external memory location; providing in said processor an indication if any other store is made to said selected aligned-multibyte external memory location; replacing in said internal register means a value in said non-aligned byte location with a new value to be written, while leaving remainder of said content intact; and thereafter conditionally storing by said processor said content of said internal register means to said selected aligned multibyte external memory location, depending upon whether said indication is present.
Claim 2
Independent Claim
169 words
A method of performing an atomic byte write in an operation of a processor, said atomic byte write being performed in a memory by way of a system bus external to said processor, said system bus connecting said processor to said memory, comprising the steps of: loading a content of a selected aligned multibyte external memory location from said memory to internal register means in said processor, said content including a non-aligned byte location to be written, and thereafter detecting on said system bus any other store to said selected aligned-multibyte external memory location; providing in said processor an indication if any other store is made to said selected aligned-multibyte external memory location; replacing in said internal register means a value in said non-aligned byte location with a new value to be written, while leaving remainder of said content intact; and thereafter conditionally storing by said processor said content of said internal register means to said selected aligned multibyte external memory location, depending upon whether said indication is present.
Claim 3
Dependent Claim
28 words
A method according to claim 1 including the step of providing an indicator in said processor of whether or not said step of conditionally storing executed a store.
Claim 4
Dependent Claim
25 words
A method according to claim 2 wherein said steps of conditionally storing and providing said indicator are performed by one instruction executed by said processor.
Claim 5
Dependent Claim
28 words
A method according to claim 2 including, after said step of conditionally storing, the step of executing by said processor a branch which is conditional upon said indicator.
Claim 6
Dependent Claim
27 words
A method according to claim 1 wherein said step of providing an indication resets a status bit, said status bit being set upon said step of loading.
Claim 7
Dependent Claim
22 words
A method according to claim 5 wherein said status bit is reset upon occurrence of an interrupt or exception in said processor.
Claim 8
Dependent Claim
26 words
A method according to claim 1 wherein said selected aligned-multibyte memory location is contained in a memory and said memory is aligned on quadword (8-byte) boundaries.
Claim 9
Dependent Claim
24 words
A method according to claim 1 wherein said stop of loading and providing said indication are performed by one instruction executed by said processor.
Claim 10
Dependent Claim
26 words
A method according to claim 1 wherein said selected aligned-multibyte memory location is contained in a memory and said memory is aligned on longword (4-byte) boundaries.
Claim 11
Dependent Claim
15 words
A method according to claim 1 wherein said processor is a single-chip integrated circuit device.
Claim 12
Independent Claim
147 words
A method of writing by a processor to a selected non-aligned byte location in external memory, the external memory being coupled to said processor by a bus, comprising the steps of: loading a selected aligned external memory location including said selected non-aligned byte location via said bus to internal register means in said processor, and thereafter detecting by said processor any other store via said bus to said selected aligned external memory location; providing an indication in said processor if any other store is made to said selected aligned external memory location; replacing at least one selected byte in said internal register means with a new value to be written to provide a modified content; and thereafter conditionally storing said modified content from said internal register means in said processor to said selected aligned external memory location via said bus, depending upon whether said indication is present.
Claim 13
Independent Claim
147 words
A method of writing by a processor to a selected non-aligned byte location in external memory, the external memory being coupled to said processor by a bus, comprising the steps of: loading a selected aligned external memory location including said selected non-aligned byte location via said bus to internal register means in said processor, and thereafter detecting by said processor any other store via said bus to said selected aligned external memory location; providing an indication in said processor if any other store is made to said selected aligned external memory location; replacing at least one selected byte in said internal register means with a new value to be written to provide a modified content; and thereafter conditionally storing said modified content from said internal register means in said processor to said selected aligned external memory location via said bus, depending upon whether said indication is present.
Claim 14
Dependent Claim
40 words
A method according to claim 11 wherein said steps of loading and providing said indication are performed by one instruction executed by said processor, and said step of conditionally storing is performed by another one instruction executed by said processor.
Claim 15
Dependent Claim
26 words
A method according to claim 11 wherein said selected aligned-multibyte memory location is contained in a memory and said memory is aligned on longword (4-byte) boundaries.
Claim 16
Dependent Claim
30 words
A method according to claim 11 wherein said step of providing an indication resets a status bit in the processor, said status bit being set upon said step of loading.
Claim 17
Dependent Claim
15 words
A method according to claim 11 wherein said processor is a signal-chip integrated circuit device.
Claim 18
Dependent Claim
28 words
A method according to claim 11 including the step of providing an indicator in said processor if said step of conditionally storing finds said indication to be present.
Claim 19
Dependent Claim
28 words
A method according to claim 16 including, after said step of conditionally storing, the step of executing by said processor a branch which is conditional upon said indicator.
Claim 20
Dependent Claim
26 words
A method according to claim 11 wherein said selected aligned-multibyte memory location is contained in a memory and said memory is aligned on quadword (8-byte) boundaries.
Claim 21
Dependent Claim
198 words
A computer system having a capability of performing an atomic byte write, comprising: a CPU and a shared memory, said CPU accessing said shared memory by a system bus; said memory having an access path for aligned memory locations of multi-byte width; means for generating in said CPU a read request for a non-aligned data item and for sending to said memory via said bus an aligned read request for a content of a location in said memory which includes said non-aligned data item, said non-aligned data item being of at least one byte in width; register means in said CPU for receiving said content from said memory via said bus and storing said content; means for detecting in said CPU another request on said bus for said location and for providing a recorded indication of detection of said another request; means in said CPU for altering only said data item in said register means to produce an altered content; means in said CPU for generating a write request for storing said altered content in said location in said memory, and for conditionally sending said write request to said memory via said bus depending upon said recorded indication.
Claim 22
Dependent Claim
198 words
A computer system having a capability of performing an atomic byte write, comprising: a CPU and a shared memory, said CPU accessing said shared memory by a system bus; said memory having an access path for aligned memory locations of multi-byte width; means for generating in said CPU a read request for a non-aligned data item and for sending to said memory via said bus an aligned read request for a content of a location in said memory which includes said non-aligned data item, said non-aligned data item being of at least one byte in width; register means in said CPU for receiving said content from said memory via said bus and storing said content; means for detecting in said CPU another request on said bus for said location and for providing a recorded indication of detection of said another request; means in said CPU for altering only said data item in said register means to produce an altered content; means in said CPU for generating a write request for storing said altered content in said location in said memory, and for conditionally sending said write request to said memory via said bus depending upon said recorded indication.
Claim 23
Dependent Claim
51 words
A system according to claim 19 including means in said CPU for indicating whether said recorded indication was present when conditionally sending said write request to said memory, and further including means for executing a conditional branch after said conditional sending, said conditional branch being responsive to said means for indicating.
Claim 24
Dependent Claim
34 words
A system according to claim 20 wherein said means for indicating includes a register of a register set accessible within said CPU, and wherein said register means is another register of said register set.
Claim 25
Dependent Claim
49 words
A system according to claim 21 wherein said means for generating and said means for detecting employ a signal instruction executed by said CPU, and wherein said means for generating a write request and conditionally sending and said means for indicating employ another single instruction executed by said CPU.
Claim 26
Dependent Claim
15 words
A system according to claim 22 wherein said memory is aligned on quadword (8-byte) boundaries.
Claim 27
Dependent Claim
15 words
A system according to claim 22 wherein said CPU is a single-chip integrated circuit device.
References Cited (Backward Citations)
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1996-03-08 | 1996-09-07 | 1997-03-09 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2000-03-08 | 2000-09-07 | 2001-03-09 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2004-03-08 | 2004-09-07 | 2005-03-09 | $7700.00 | Window Closed / Lapsed |