IP Library › Granted Patent US 10,942,865
Granted Patent B2
US 10,942,865 · App. 16/440,533 · Granted Mar 9, 2021

Snooping with access permissions

Inventors: Gurunath Ramagiri (Austin, TX); Tushar P. Ringe (Austin, TX); Mukesh Patel (Round Rock, TX); Jamshed Jalal (Austin, TX); Iat Pui Chan (Cedar Park, TX); Lakshmi Joga Vishnu Vardhan Badukonda (Bee Cave, TX)
Assignee: Arm Limited
G06F12/1081G06F12/0864G06F12/0877
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 10,942,865
App. No.
16/440,533
Granted
Mar 9, 2021
Kind
B2
Abstract

A method and apparatus are provided to enable snoop forwarding to occur together with memory protection. A data processing apparatus in, for instance, the form of a home node forwards a snoop forwarding request on behalf of a requester to a target, the snoop forwarding request being capable of indicating one or more access permissions of the target in relation to the data. A further data processing apparatus in the form of, for instance, a receiver node may receive the snoop forwarding request and based on its own permissions that are provided in the snoop forwarding request, together with the state of the data, either provide a response back to the requester or the home node. In a still further data processing apparatus in the form of, for instance, a Memory Protection Unit (MPU), a regular snoop forwarding request made to a target in relation to data can be forwarded to the target or demoted to a non-forwarding snoop request based on the permissions of the target in relation to the data at the MPU.

Claims (70)

1. A data processing apparatus, further comprising:

receive circuitry to receive a request to access data at an access address from a requester;

processing circuitry to generate a forwarding snoop request, wherein the forwarding snoop request causes a target to forward the data to the requester; and

transmit circuitry to send the forwarding snoop request to the target;

permission obtaining circuitry to obtain, for one or more address ranges, an access permission of the target, wherein

the forwarding snoop request is capable of indicating one or more access permissions of the target in relation to the data;

the permission obtaining circuitry is adapted, in response to receiving the request to access data, to obtain a permission corresponding to one of the one or more address ranges that encompasses the access address range as the one or more access permissions, and

wherein the processing circuitry is further adapted to generate the forwarding snoop request comprising the one or more access permissions.

2. The data processing apparatus according to claim 1 , further comprising:

snoop filter circuitry to determine, using the access address, the target as a device having current ownership of the data.

3. The data processing apparatus according to claim 1 , wherein the transmit circuitry is further adapted to send the forwarding snoop request to the target via a Memory Protection Unit.

4. The data processing apparatus according to claim 1 , wherein:

the receive circuitry is further adapted to receive a snoop response from the target; and

the processing circuitry is further adapted:

if the snoop response contains the data, to cause the transmit circuitry to forward the data to the requester, and

otherwise, to cause the transmit circuitry to transmit a request for the data from a main memory and in response to receiving the data from the main memory, to forward the data to the requester.

5. The data processing apparatus according to claim 1 , wherein the forwarding snoop request comprises a field to indicate the one or more access permissions.

6. The data processing apparatus according to claim 1 , wherein the forwarding snoop request is capable of indicating a shared state of the data.

7. The data processing apparatus according to claim 1 , wherein the one or more access permissions include whether the target has write access the data.

8. The data processing apparatus according to claim 1 , wherein:

the request comprises an indication of one or more access permissions of the requester in relation to the data; and

the processing circuitry is further adapted:

if the one or more access permissions of the requester indicate that the requester has both read and write access to the data, to cause the transmit circuitry to transmit the forwarding snoop request to the target, and

otherwise if the one or more access permissions of the requester indicate that the requester has read access and lacks write access, to cause the transmit circuitry to transmit a non-forwarding snoop request to the target,

wherein the non-forwarding snoop request causes the target to forward the data to the data processing apparatus.

9. A method comprising:

receiving a request to access data at an access address from a requester;

generating a forwarding snoop request, wherein the forwarding snoop request causes a target to forward the data to the requester;

sending the forwarding snoop request to the target,

obtaining, for one or more address ranges, an access permission of the target, wherein

the forwarding snoop request is capable of indicating one or more access permissions of the target in relation to the data;

in response to receiving the request to access data, a permission corresponding to one of the one or more address ranges that encompasses the access address range is obtained as the one or more access permissions; and

the forwarding snoop request is generated to contain the one or more access permissions.

10. A data processing apparatus comprising:

receive circuitry to receive a forwarding snoop request from a home node to provide data at an access address to a requester;

permission obtaining circuitry to obtain, for one or more address ranges, an access permission of a target of the forwarding snoop request; and

transmit circuitry to transmit an outgoing snoop request to the target of the forwarding snoop request,

wherein the permission obtaining circuitry is adapted, in response to receiving the request to access data, to obtain a permission corresponding to one of the one or more address ranges that encompasses the access address range as the one or more access permissions, and

wherein a type of the outgoing snoop request is based on the corresponding permission.

11. The data processing apparatus according to claim 10 , wherein the type of the outgoing snoop request is any one of non-forwarding or forwarding.

12. The data processing apparatus according to claim 11 , wherein in response to a determination that the one or more access permissions comprise a write permission of the target in relation to the data, the type of the outgoing snoop request is selected as a forwarding snoop request.

13. The data processing apparatus according to claim 11 , wherein in response to a determination that the one or more access permissions lack a write permission of the target in relation to the data, the type of the outgoing snoop request is selected as a non-forwarding snoop request.

14. The data processing apparatus according to claim 11 , wherein:

the forwarding snoop request comprises an indication of whether the target has shared access to the data; and

in response to a determination that the target has shared access to the data, the type of the outgoing snoop request is selected as a forwarding snoop request.

15. The data processing apparatus according to claim 11 , wherein the outgoing snoop request comprises the one or more access permissions.

16. A method comprising:

receiving a forwarding snoop request from a home node to provide data at an access address to a requester;

storing, for one or more address ranges, an access permission of a target of the forwarding snoop request;

transmitting an outgoing snoop request to the target of the forwarding snoop request;

determining, in response to receiving the request to access data, one of the one or more address ranges that encompasses the access address range; and

acquiring a corresponding permission as the one or more access permissions,

wherein a type of the outgoing snoop request is based on the corresponding permission.

17. A data processing apparatus comprising:

receive circuitry to receive a forwarding snoop request from a home node to provide data at an access address to a requester, wherein the forwarding snoop request is capable of indicating one or more access permissions of the data processing apparatus in relation to the data;

cache circuitry to store the data together with associated modification indicator; and

transmit circuitry to transmit a snoop response based on the one or more access permissions and the modification indicator.

18. The data processing apparatus according to claim 17 , wherein:

the transmit circuitry is further adapted, in response to the one or more access permissions comprising a write permission of a target in relation to the data, to transmit the snoop response to the requester; and

the snoop response comprises the data.

19. The data processing apparatus according to claim 17 , wherein:

the transmit circuitry is further adapted, in response to the one or more access permissions lacking a write permission of a target in relation to the data, and the modification indicator indicating that the data is unmodified, to transmit the snoop response to the requester; and

the snoop response comprises the data.

20. The data processing apparatus according to claim 17 , wherein:

the transmit circuitry is further adapted, in response to the one or more access permissions lacking a write permission of a target in relation to the data, and the modification indicator indicating that the data is modified, to transmit the snoop response to the home node and to delete the data from the cache circuitry; and

the snoop response indicates that the data processing apparatus lacks the data.

21. A method comprising:

receiving a forwarding snoop request from a home node to provide data at an access address to a requester, wherein the forwarding snoop request is capable of indicating one or more access permissions of a data processing apparatus in relation to the data;

storing the data together with associated modification indicator; and

transmitting a snoop response based on the one or more access permissions and the modification indicator.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE SPELLING OF INVENTOR JAMSHED JALEL'S LAST NAME TO JALAL PREVIOUSLY RECORDED ON REEL 049462 FRAME 0575. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Oct 23, 2019
From: RAMAGIRI, GURUNATH; RINGE, TUSHAR P.; PATEL, MUKESH; JALAL, JAMSHED; CHAN, IAT PUI; BADUKONDA, LAKSHMI JOGA VISHNU VARDHAN
To: ARM LIMITED
Reel/Frame 050799/0568 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 13, 2019
From: RAMAGIRI, GURUNATH; RINGE, TUSHAR P.; PATEL, MUKESH; JALEL, JAMSHED; CHAN, IAT PUI; BADUKONDA, LAKSHMI JOGA VISHNU VARDHAN
To: ARM LIMITED
Reel/Frame 049462/0575 →
Continuity (1)
Related Publication 20200394141A1 · Dec 17, 2020