Relationship-based wan caching for object stores
US-2016048551-A1 · Feb 18, 2016 · US
US11635960B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11635960-B2 |
| Application number | US-202016905680-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 18, 2020 |
| Priority date | Dec 17, 2015 |
| Publication date | Apr 25, 2023 |
| Grant date | Apr 25, 2023 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A method includes receiving, for metadata processing, a current instruction with associated metadata tags. The metadata processing is performed in a metadata processing domain isolated from a code execution domain including the current instruction. Each respective associated metadata tag represents a respective policy of the composite policy. For each respective metadata tag, the method includes determining, in the metadata processing domain and in accordance with the metadata tag and the current instruction, whether a rule exists for the current instruction in a rules cache. The rules cache may include rules on metadata used by the metadata processing to define allowed instructions. The determination of whether a rule exists results in a respective output, which may include generating a new rule and inserting the new rule in the rules cache. Control Status Registers, and associated tags, may be used to accomplish the metadata processing.
Opening claim text (preview).
The invention claimed is: 1. A method of digital processor processing instructions comprising: in a system comprising a code execution domain and a metadata processing domain, the code execution domain is separated and isolated from the metadata processing domain by (i) preventing instructions of executing code from reading or writing metadata tags or rules to/from one or more control status registers based upon a protection level of the executing code, (ii) communicating information from the metadata processing domain to the code execution domain using one or more control status registers, wherein access to the one or more control status registers is permitted based upon a current mode and minimum privilege level of the one or more control status registers and a determined privilege level of the instructions, and (iii) communicating information from the code execution domain to the metadata processing domain using the one or more control status registers, receiving, for metadata processing, a current instruction with a plurality of associated metadata tags, the metadata processing being performed in the metadata processing domain isolated from the code execution domain that includes the current instruction, each respective associated metadata tag representing a respective policy of a composite policy, the plurality of associated metadata tags further including pointers to tags of a component policy of the composite policy; for each respective metadata tag of the plurality of associated metadata tags, determining, in the metadata processing domain and in accordance with the metadata tag and the current instruction, whether a rule exists in a rules cache for the current instruction, the rules cache including rules on metadata used by the metadata processing to define allowed instructions, each determination of whether a rule exists resulting in a respective output; responsive to determining no rule exists in the rules cache for the current instruction, performing rule cache miss processing in the metadata processing domain including determining whether execution of the current instruction is one of allowed and disallowed; responsive to determining the current instruction is allowed to be executed in the code execution domain, generating a new rule for the current instruction and, responsive to writing to a register in the metadata processing domain, inserting the new rule into the rules cache; wherein first metadata used to select the rule for the current instruction is stored in a first portion of a plurality of control status registers used by the metadata processing, and wherein the first portion of the plurality of control status registers is atomically read based upon a determined privilege level of the current instruction and used to communicate a plurality of metadata tags for the current instruction to the metadata processing domain, wherein the plurality of metadata tags is used as data in the metadata processing domain. 2. The method of claim 1 , further comprising: generating a composite result tag by combining the respective outputs into a single metadata tag representing the composite policy that includes each respective policy; and inserting a new rule into the rules cache, the new rule comprising (i) the current instruction and associated metadata tags, and (ii) the composite result tag. 3. The method of claim 1 , wherein determining whether a rule exists in a rules cache further includes: for each metadata tag, determining whether a rule exists in a first level cache; when it is determined that no rule is present in the first level cache, determining whether a rule exists in a second level cache. 4. The method of claim 1 , wherein the rules cache is at least one of a Unified Component Policy (UCP) cache, composite set of tag (CTAG) cache, or data cache. 5. The method of claim 1 , wherein: a composite set of tag (CTAG) cache stores composite results based on combinations of metadata tag values, and generating the composite result tag includes combining the respective outputs into a single metadata tag by looking up a combination of the respective outputs in the CTAG cache. 6. The method of claim 1 , wherein the first portion of the plurality of control status registers comprises an Opgrp tag that denotes a particular opgroup that includes a current instruction. 7. The method of claim 1 , wherein the first portion of the plurality of control status registers comprises a PCtag tag that is associated with a program counter. 8. The method of claim 1 , wherein the first portion of the plurality of control status registers comprises CItag tag that is associated with the current instruction. 9. The method of claim 1 , wherein the first portion of the plurality of control status registers comprises an OP1tag that is associated with an RS1 register input to the current instruction. 10. The method of claim 1 , wherein the first portion of the plurality of control status registers comprises an OP2tag that is associated with an RS2 register input to the current instruction. 11. The method of claim 1 , wherein the first portion of the plurality of control status registers comprises an OP3tag that is associated with an RS3 register input to the current instruction. 12. The method of claim 1 , wherein the first portion of the plurality of control status registers comprises an Mtag tag that is associated with a memory input to a current instruction or a memory target of the current instruction. 13. The method of claim 1 , wherein the first portion of the plurality of control status registers comprises a funct12 tag associated with extended opcode bits of the current instruction. 14. The method of claim 1 , wherein the first portion of the plurality of control status registers comprises a subinstr tag that identifies which instruction in a word is the current instruction being operated upon.
during program execution, e.g. stack integrity {; Preventing unwanted data erasure; Buffer overflow} · CPC title
Security improvement · CPC title
comprising a single central processing unit · CPC title
Special purpose registers · CPC title
Encrypted data · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.