Patent US5410682A successfully refreshed from Google Patents.
US5410682A
Expired / Lapsed
US
⏱️ 0.0 years remaining
In-register data manipulation for unaligned byte write using data shift in reduced instruction set processor
Assignee: Hewlett Packard Development Co LP
•
Filing: 1994-08-10
•
Granted: 1995-04-25
•
Expires: 2014-08-10
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-11-03 14:22
CPC Classifications
G; G06; G06F; G06F12/00; G06F12/02; G06F12/08; G06F12/10; G06F12/1027; G06F9/00; G06F9/06; G06F9/30; G06F9/30003; G06F9/30007; G06F9/30018; G06F9/30021; G06F9/30036; G06F9/30038; G06F9/3004; G06F9/3005; G06F9/30054; G06F9/30072; G06F9/30076; G06F9/30087; G06F9/32; G06F9/322; G06F9/323; G06F9/38; G06F9/3802; G06F9/3816; G06F9/3824; G06F9/3834; G06F9/3836; G06F9/3854; G06F9/3856; G06F9/3858; G06F9/3861; G06F2212/00; G06F2212/65; G06F2212/652
Claims Analysis
Total Claims: 15
Claim 1
Independent Claim
202 words
A method of performing byte operations in a processor, comprising the steps of: loading to an internal register means a content of a selected memory location, said internal register means having registers of N bytes, said content containing an unaligned byte reference of M bytes in size where M is any integer no more than N, the register means and said selected memory location being addressed by an unaligned address to said unaligned byte reference but said content being aligned in said multiple-byte format; said step of loading being performed by a single instruction executed by said processor performing in said processor an operation on said content, said operation changing only said unaligned byte reference in said internal register means; and thereafter storing said content of said internal register means to said selected memory location aligned in multiple-byte format using said unaligned address; wherein said step of performing an operation includes extracting said unaligned byte reference from the content of said internal register means, performing an arithmetic or logic operation on said extracted unaligned byte reference to produce a result, then inserting the result into said content of said internal register means at said unaligned byte reference before said step of storing.
Claim 2
Independent Claim
202 words
A method of performing byte operations in a processor, comprising the steps of: loading to an internal register means a content of a selected memory location, said internal register means having registers of N bytes, said content containing an unaligned byte reference of M bytes in size where M is any integer no more than N, the register means and said selected memory location being addressed by an unaligned address to said unaligned byte reference but said content being aligned in said multiple-byte format; said step of loading being performed by a single instruction executed by said processor performing in said processor an operation on said content, said operation changing only said unaligned byte reference in said internal register means; and thereafter storing said content of said internal register means to said selected memory location aligned in multiple-byte format using said unaligned address; wherein said step of performing an operation includes extracting said unaligned byte reference from the content of said internal register means, performing an arithmetic or logic operation on said extracted unaligned byte reference to produce a result, then inserting the result into said content of said internal register means at said unaligned byte reference before said step of storing.
Claim 3
Dependent Claim
27 words
A method according to claim 1 wherein said step of loading is performed by one instruction, and said step of storing is performed by another one instruction.
Claim 4
Dependent Claim
15 words
A method according to claim 1 wherein said multiple-byte format comprises at least four bytes.
Claim 5
Dependent Claim
16 words
A method according to claim 3 wherein said multiple-byte format comprises no more than eight bytes.
Claim 6
Dependent Claim
26 words
A method according to claim 4 wherein said unaligned address is transformed to an aligned address by zeroing at least three of the lowest-order address bits.
Claim 7
Dependent Claim
15 words
A method according to claim 1 wherein said multiple-byte format comprises at least four bytes.
Claim 8
Independent Claim
262 words
A method of performing byte operations in a processor, comprising the steps of: generating in said processor an unaligned byte address for a multiple-byte datum of any number of bytes no greater than N; loading to a first internal register in said processor the content of a first selected aligned memory location, said first selected aligned memory location containing said unaligned byte address, the first internal register and said first selected memory location being in aligned N-byte format; loading to a second internal register in said processor the content of a second selected aligned memory location containing said unaligned byte address plus N-1, the second internal register and said second selected aligned memory location being in aligned N-byte format; performing in said processor an operation on only said multiple-byte datum in said first and second internal registers to produce a result contained in said first and second internal registers; and, by operation of an instruction executed by said processor, thereafter storing said result to said first selected aligned memory location using said unaligned byte address and to said second selected aligned memory location using said unaligned byte address plus N-1, said storing being aligned in N-byte format; wherein said step of performing an operation includes extracting said multiple-byte datum from the content of said first and second internal registers, performing an arithmetic or logic operation on said extracted said multiple-byte datum to produce said result, then inserting the result into said content of said first and second internal registers at the original position of said multiple-byte datum before said step of storing.
Claim 9
Independent Claim
262 words
A method of performing byte operations in a processor, comprising the steps of: generating in said processor an unaligned byte address for a multiple-byte datum of any number of bytes no greater than N; loading to a first internal register in said processor the content of a first selected aligned memory location, said first selected aligned memory location containing said unaligned byte address, the first internal register and said first selected memory location being in aligned N-byte format; loading to a second internal register in said processor the content of a second selected aligned memory location containing said unaligned byte address plus N-1, the second internal register and said second selected aligned memory location being in aligned N-byte format; performing in said processor an operation on only said multiple-byte datum in said first and second internal registers to produce a result contained in said first and second internal registers; and, by operation of an instruction executed by said processor, thereafter storing said result to said first selected aligned memory location using said unaligned byte address and to said second selected aligned memory location using said unaligned byte address plus N-1, said storing being aligned in N-byte format; wherein said step of performing an operation includes extracting said multiple-byte datum from the content of said first and second internal registers, performing an arithmetic or logic operation on said extracted said multiple-byte datum to produce said result, then inserting the result into said content of said first and second internal registers at the original position of said multiple-byte datum before said step of storing.
Claim 10
Dependent Claim
17 words
A method according to claim 7 wherein each said step of loading is performed by one instruction.
Claim 11
Dependent Claim
17 words
A method according to claim 7 wherein each said step of storing is performed by one instruction.
Claim 12
Dependent Claim
15 words
A method according to claim 7 wherein said N-byte format comprises at least four bytes.
Claim 13
Dependent Claim
16 words
A method according to claim 10 wherein said N-byte format comprises not more than eight bytes.
Claim 14
Dependent Claim
26 words
A method according to claim 11 wherein said unaligned address is transformed to an aligned address by zeroing at least three of the lowest-order address bits.
Claim 15
Dependent Claim
20 words
A method according to claim 7 wherein said step of extracting includes executing a separate single instruction by said processor.
References Cited (Backward Citations)
US3873976A
Cited
US4456955A
Cited
US4569016A
Cited
US4591982A
Cited
US4739471A
Cited
US4814976A
Cited
US4814976C1
Cited
US5051894A
Cited
US5276891A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 1998-04-24 | 1998-10-24 | 1999-04-25 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2002-04-24 | 2002-10-24 | 2003-04-25 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2006-04-24 | 2006-10-24 | 2007-04-25 | $7700.00 | Window Closed / Lapsed |