IP Library Granted Patent US 12,079,197
Granted Patent B2
US 12,079,197 · App. 17/769,868 · Granted Sep 3, 2024

Systems and methods for updating metadata

Inventors: Eli Boling (Manchester, MA); Steven Milburn (Cranston, RI); Gregory T. Sullivan (Cambridge, MA); Andrew Sutherland (Portland, OR)
Assignee: Dover Microsystems, Inc.
G06F16/2365G06F9/3013
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,079,197
App. No.
17/769,868
Granted
Sep 3, 2024
Kind
B2
Abstract

Systems and methods for updating metadata. In some embodiments, in response to detecting an instruction executed by a hardware system, a source location of the instruction may be identified. First metadata associated with the instruction may be used to determine whether the instruction is allowed. In response to determining that the instruction is allowed, the source location of the instruction may be associated with second metadata.

Claims (104)

1. A method for updating metadata, comprising acts of:

in response to detecting an instruction executed by a hardware system, identifying a source location of the instruction;

determining, based at least in part on first metadata associated with the instruction, whether the instruction is allowed, wherein:

determining whether the instruction is allowed comprises identifying a rule that matches one or more inputs, the one or more inputs comprising the first metadata associated with the instruction; and

the rule maps the one or more inputs to one or more outputs, the one or more outputs comprising second metadata to be associated with the source location of the instruction; and

in response to determining that the instruction is allowed, causing the source location of the instruction to be associated with the second metadata.

2. The method of claim 1 , wherein:

the source location of the instruction comprises an application data storage location;

the method further comprises an act of identifying a metadata storage location corresponding to the application data storage location; and

causing the source location of the instruction to be associated with the second metadata comprises causing the second metadata to be written to the metadata storage location corresponding to the application data storage location.

3. The method of claim 2 , wherein:

the source location of the instruction comprises an entry in a register file of the hardware system; and

the instruction comprises an instruction that reads data from the entry in the register file and writes the data to a target location of the instruction.

4. The method of claim 3 , wherein:

the register file of the hardware system comprises a first register file; and

the metadata storage location to which the second metadata is written comprises an entry in a second register file.

5. The method of claim 3 , wherein:

the instruction comprises a store instruction executed by a host processor in the hardware system; and

the target location to which the data is written by the instruction comprises an application memory location.

6. The method of claim 3 , wherein:

the entry in the register file comprises a first entry;

the instruction comprises a register-to-register transfer instruction executed by a host processor in the hardware system; and

the target location to which the data is written by the instruction comprises a second entry in the register file.

7. The method of claim 2 , wherein:

the source location of the instruction comprises an application memory location;

the instruction comprises a load instruction executed by a host processor in the hardware system; and

the load instruction reads data from the application memory location and writes the data to a target location of the load instruction.

8. The method of claim 7 , wherein:

the metadata storage location to which the second metadata is written comprises a metadata memory location.

9. The method of claim 2 , wherein:

the source location of the instruction comprises a first application memory location;

the instruction comprises a direct memory access instruction executed by direct memory access hardware in the hardware system; and

the direct memory access instruction reads data from the first application memory location and writes the data to a second application memory location.

10. The method of claim 1 , wherein:

the instruction comprises an instruction of an epilogue of a function; and

the source location of the instruction comprises a location in a stack frame of the function.

11. The method of claim 10 , wherein:

the one or more inputs further comprise third metadata associated with the source location of the instruction;

the third metadata indicates the source location of the instruction is to be protected under a stack frame policy;

the instruction comprises a load instruction that restores a value preserved at the source location of the instruction to a register; and

the second metadata associated with the source location of the instruction indicates the stack frame policy is no longer applicable to the storage location.

12. The method of claim 1 , wherein:

identifying a source location of the instruction comprises:

decoding an encoding of the instruction to obtain one or more fields; and

identifying the source location of the instruction based on at least one of the one or more fields.

13. The method of claim 12 , wherein:

the one or more fields comprise a program counter, a base address, and an offset;

the first metadata associated with the instruction comprises metadata associated with the program counter; and

the one or more inputs further comprise metadata associated with the base address and metadata associated with the offset.

14. A system comprising hardware circuitry and/or one or more hardware processors programmed by executable instructions, wherein the hardware circuitry and/or the one or more programmed hardware processors are configured to perform a method for updating metadata, the method comprising acts of:

in response to detecting an instruction executed by a hardware system, identifying a source location of the instruction;

determining, based at least in part on first metadata associated with the instruction, whether the instruction is allowed, wherein:

determining whether the instruction is allowed comprises identifying a rule that matches one or more inputs, the one or more inputs comprising the first metadata associated with the instruction; and

the rule maps the one or more inputs to one or more outputs, the one or more outputs comprising second metadata to be associated with the source location of the instruction; and

in response to determining that the instruction is allowed, causing the source location of the instruction to be associated with the second metadata.

15. The system of claim 14 , wherein:

the source location of the instruction comprises an application data storage location;

the method further comprises an act of identifying a metadata storage location corresponding to the application data storage location; and

causing the source location of the instruction to be associated with the second metadata comprises causing the second metadata to be written to the metadata storage location corresponding to the application data storage location.

16. The system of claim 15 , wherein:

the source location of the instruction comprises an entry in a register file of the hardware system; and

the instruction comprises an instruction that reads data from the entry in the register file and writes the data to a target location of the instruction.

17. The system of claim 16 , wherein:

the register file of the hardware system comprises a first register file; and

the metadata storage location to which the second metadata is written comprises an entry in a second register file.

18. The system of claim 16 , wherein:

the instruction comprises a store instruction executed by a host processor in the hardware system; and

the target location to which the data is written by the instruction comprises an application memory location.

19. The system of claim 16 , wherein:

the entry in the register file comprises a first entry;

the instruction comprises a register-to-register transfer instruction executed by a host processor in the hardware system; and

the target location to which the data is written by the instruction comprises a second entry in the register file.

20. The system of claim 15 , wherein:

the source location of the instruction comprises an application memory location;

the instruction comprises a load instruction executed by a host processor in the hardware system; and

the load instruction reads data from the application memory location and writes the data to a target location of the load instruction.

21. The system of claim 20 , wherein:

the metadata storage location to which the second metadata is written comprises a metadata memory location.

22. The system of claim 15 , wherein:

the source location of the instruction comprises a first application memory location;

the instruction comprises a direct memory access instruction executed by direct memory access hardware in the hardware system; and

the direct memory access instruction reads data from the first application memory location and writes the data to a second application memory location.

23. The system of claim 14 , wherein:

the instruction comprises an instruction of an epilogue of a function; and

the source location of the instruction comprises a location in a stack frame of the function.

24. The system of claim 23 , wherein:

the one or more inputs further comprise third metadata associated with the source location of the instruction;

the third metadata indicates the source location of the instruction is to be protected under a stack frame policy;

the instruction comprises a load instruction that restores a value preserved at the source location of the instruction to a register; and

the second metadata associated with the source location of the instruction indicates the stack frame policy is no longer applicable to the storage location.

25. The system of claim 14 , wherein:

identifying a source location of the instruction comprises:

decoding an encoding of the instruction to obtain one or more fields; and

identifying the source location of the instruction based on at least one of the one or more fields.

26. The system of claim 25 , wherein:

the one or more fields comprise a program counter, a base address, and an offset;

the first metadata associated with the instruction comprises metadata associated with the program counter; and

the one or more inputs further comprise metadata associated with the base address and metadata associated with the offset.

27. At least one non-transitory computer-readable medium having stored thereon at least one hardware description for circuitry and/or executable instructions for programming one or more processors, wherein the circuitry and/or the one or more programmed processors are configured to perform a method for updating metadata, the method comprising acts of:

in response to detecting an instruction executed by a hardware system, identifying a source location of the instruction;

determining, based at least in part on first metadata associated with the instruction, whether the instruction is allowed, wherein:

determining whether the instruction is allowed comprises identifying a rule that matches one or more inputs, the one or more inputs comprising the first metadata associated with the instruction; and

the rule maps the one or more inputs to one or more outputs, the one or more outputs comprising second metadata to be associated with the source location of the instruction; and

in response to determining that the instruction is allowed, causing the source location of the instruction to be associated with the second metadata.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 6, 2023
From: BOLING, ELI; MILBURN, STEVEN; SULLIVAN, GREGORY T.; SUTHERLAND, ANDREW
To: DOVER MICROSYSTEMS, INC.
Reel/Frame 062596/0421 →
Continuity (2)
Provisional Application 62916902 · Oct 18, 2019
Related Publication 20220374415A1 · Nov 24, 2022
Cited By (3)
US 12,393,677 US 12,524,394 US 12,632,541