IP Library › Granted Patent US 12,737,449
Granted Patent B2
US 12,737,449 · App. 18/553,934 · Granted Sep 15, 2026

Apparatus and method for handling stashing transactions

Inventors: Tessil Thomas (Cambridge, GB); Yuval Elad (Cambridge, GB); Thanunathan Rangarajan (Bangalore, IN); Carlos Garcia-Tobin (Cambridge, GB)
Assignee: Arm Limited
G06F21/53
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,737,449
App. No.
18/553,934
Granted
Sep 15, 2026
Kind
B2
Abstract

An apparatus and method are provided, the apparatus comprising: interconnect circuitry to couple a device to one or more processing elements, each processing element operating in a trusted execution environment; and secure stashing decision circuitry to receive stashing transactions from the device and to redirect permitted stashing transactions to a given storage structure accessible to at least one of the one or more processing elements. The secure stashing decision circuitry is configured, in response to receiving a given stashing transaction, to determine whether the given stashing transaction comprises a trusted execution environment identifier associated with a given trusted execution environment, and to treat the given stashing transaction as a permitted stashing transaction when redirection requirements, dependent on the trusted execution environment identifier, are met.

Claims (48)

1 . An apparatus comprising:

interconnect circuitry configured to couple a device to one or more processing elements, at least one of the one or more processing elements being configured to operate in a trusted execution environment, and to couple a memory for storing data to the device and to the one or more processing elements; and

secure stashing decision circuitry configured to receive stashing transactions from the device, each of the stashing transactions comprising a request to access data associated with a location in the memory, and to redirect permitted stashing transactions from the memory to a given storage structure configured to store a copy of the data and accessible to at least one of the one or more processing elements, wherein the given storage structure is separate from the memory and is located on a same side of the interconnect circuitry as the at least one of the one or more processing elements,

wherein the secure stashing decision circuitry is configured, in response to receiving a given stashing transaction including a write request to write data associated with a location in the memory, to determine whether the given stashing transaction comprises a trusted execution environment identifier associated with a given trusted execution environment, to treat the given stashing transaction as a permitted stashing transaction, and to cause the data to be written to the given storage structure, when redirection requirements, dependent on the trusted execution environment identifier, are met.

2 . The apparatus of claim 1 , wherein whether the redirection requirements are met is dependent on at least one of:

whether the trusted execution environment identifier is present; and

the value of the trusted execution environment identifier.

3 . The apparatus of claim 1 , wherein:

the secure stashing decision circuitry is configured, when the given storage structure is in a trusted execution environment, to reject the given stashing transaction when the trusted execution environment identifier is absent or invalid.

4 . The apparatus of claim 3 , wherein

the secure stashing decision circuitry is configured, in response to rejecting the given stashing transaction, to assert an error signal.

5 . The apparatus of claim 1 , wherein

the given storage structure is selected in dependence on the permitted stashing transaction.

6 . The apparatus of claim 1 , wherein:

the secure stashing decision circuitry is configured to determine whether the given stashing transaction comprises a steering tag indicative of the given storage structure; and

when the secure stashing decision circuitry determines that the given stashing transaction comprises the steering tag, whether the redirection requirements are met is further dependent on the steering tag.

7 . The apparatus of claim 6 , wherein the secure stashing decision circuitry is configured to reject the given stashing transaction when at least one of:

the given storage structure is in a first trusted execution environment and the trusted execution environment identifier is absent or invalid;

the given storage structure is in a first trusted execution environment and said trusted execution environment identifier is associated with a different trusted execution environment; and

the steering tag is invalid.

8 . The apparatus of claim 6 , wherein the given storage structure is selected in dependence on at least one of:

a value of the trusted execution environment identifier; and

a value of the steering tag.

9 . The apparatus of claim 8 , wherein

the secure stashing decision circuitry is configured to select the given storage structure in dependence on the value of the steering tag unless the steering tag is absent.

10 . The apparatus of claim 1 , wherein:

the given stashing transaction comprises a request to access data at a given location in memory; and

the secure stashing decision circuitry is configured to identify, based on the trusted execution environment identifier, an encryption key identifier indicative of an encryption key for encrypting the data stored at the given location in the memory.

11 . The apparatus of claim 10 , wherein

each of the stashing transactions comprises a write request to write data to a location associated with a location in the memory; and

the secure stashing decision circuitry is configured to cause the encryption key identifier and the data to be written to the given storage structure.

12 . The apparatus of claim 1 , wherein

the given storage structure comprises a cache.

13 . The apparatus of claim 12 , wherein

the secure stashing decision circuitry is configured to control, based on the trusted execution environment identifier, whether at least one given cache line of the cache is permitted to also be held in at least one other cache.

14 . The apparatus of claim 1 , comprising

a root port provided at a first level of devices within a hierarchical structure of devices, the device being provided within the hierarchical structure of devices and being coupled to the interconnect via the root port.

15 . The apparatus of claim 14 , wherein:

the device comprises a requester device within a packet network, the requester device being configured to transmit the stashing transactions to the root port in accordance with a packet protocol of the packet network, for onward propagation to the interconnect.

16 . The apparatus of claim 15 , wherein

the packet protocol comprises the Peripheral Component Interconnect Express (PCIe) protocol.

17 . The apparatus of claim 1 , wherein:

the interconnect comprises home node circuitry responsible for controlling access to a portion of the memory; and

the home node circuitry comprises the secure stashing decision circuitry.

18 . A method of stashing transactions, the method comprising:

receiving stashing transactions from a device, the device being coupled, via interconnect circuitry, to one or more processing elements at least one of the one or more processing elements being configured to operate in a trusted execution environment, wherein a memory for storing data is coupled to the device and to the one or more processing elements via the interconnect circuitry;

redirecting permitted stashing transactions from the memory, each of the stashing transactions comprising a request to access data associated with a location in the memory, to a given storage structure for storing a copy of the data and accessible to at least one of the one or more processing elements, wherein the given storage structure is separate from the memory and is located on a same side of the interconnect circuitry as the at least one of the one or more processing elements; and

in response to receiving a given stashing transaction including a write request to write data associated with a location in the memory, determining whether the given stashing transaction comprises a trusted execution environment identifier associated with a given trusted execution environment, treating the given stashing transaction as a permitted stashing transaction, and causing the data to be written to the given storage structure, when redirection requirements, dependent on the trusted execution environment identifier, are met.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2024
From: THOMAS, TESSIL; ELAD, YUVAL; RANGARAJAN, THANUNATHAN; GARCIA-TOBIN, CARLOS
To: ARM LIMITED
Reel/Frame 067070/0715 →
Priority Claims (1)
GB 2104930 · Apr 7, 2021 · national
Continuity (1)
Related Publication 20240193260A1 · Jun 13, 2024
References Cited (30)
US 9632958B2 · Dutta et al. · 2017 [cited by applicant]
US 10764752B1 · Avetisov · 2020 [cited by examiner]
US 10795985B2 · Attfield · 2020 [cited by examiner]
US 10949530B2 · Mei · 2021 [cited by examiner]
US 20100005264A1 · Ito · 2010 [cited by examiner]
US 20150281186A1 · Smith · 2015 [cited by examiner]
US 20160182497A1 · Smith · 2016 [cited by applicant]
US 20170177293A1 · Krishnakumar · 2017 [cited by examiner]
US 20180189199A1 · Condict · 2018 [cited by examiner]
US 20180210844A1 · Kim · 2018 [cited by examiner]
US 20180247082A1 · Durham et al. · 2018 [cited by applicant]
US 20180276392A1 · Hoogerbrugge · 2018 [cited by examiner]
US 20190042766A1 · Pappachan · 2019 [cited by examiner]
US 20190227827A1 · Zmudzinski · 2019 [cited by examiner]
US 20190340147A1 · Jalal et al. · 2019 [cited by applicant]
US 20200142839A1 · Stockwell et al. · 2020 [cited by applicant]
US 20210073403A1 · Swaine · 2021 [cited by examiner]
US 20210200546A1 · Lemay · 2021 [cited by examiner]
US 20210224426A1 · Cui · 2021 [cited by examiner]
US 20220027520A1 · Li · 2022 [cited by examiner]
US 20220158856A1 · Maximov · 2022 [cited by examiner]
CN 110140111 · 2019 [cited by applicant]
CN 112585590 · 2021 [cited by applicant]
EP 3367287A1 · 2018 [cited by applicant]
GB 2605774B · 2022 [cited by examiner]
JP 2018523209 · 2018 [cited by applicant]
Combined International Search and Examination Report for International Application No. GB2104930.9, dated Jan. 5, 2022. [cited by applicant]
International Search Report for International Application No. PCT/GB2022/050386, dated May 6, 2022. [cited by applicant]
Office Action for JP Application No. 2023-560312 issued Feb. 25, 2026 and English translation, 4 pages. [cited by applicant]
Office Action for CN Application No. 202280034953.2 issued Apr. 20, 2026 and English translation, 14 pages. [cited by applicant]