IP Library Granted Patent US 11,200,175
Granted Patent B2
US 11,200,175 · App. 16/825,021 · Granted Dec 14, 2021

Memory accessor invailidation

Inventor: Matthias Lothar Boettcher (Cambridge, GB)
Assignee: Arm Limited
G06F12/0891G06F9/30018G06F12/023G06F12/0864G06F12/1027G06F12/1458
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 11,200,175
App. No.
16/825,021
Granted
Dec 14, 2021
Kind
B2
Abstract

There is provided a data processing apparatus that includes memory circuitry that provides a physical address space, which is logically divided into a plurality of memory segments and stores a plurality of accessors with associated validity indicators. Each of the accessors controls access to a region of the physical address space in dependence on at least its associated validity indicator. Tracking circuitry tracks which of the memory segments contain the accessors and invalidation circuitry responds to a request to invalidate an accessor by determining a set of equivalent accessors with reference to the tracking circuitry, and invalidating the accessor and the equivalent accessors by setting the associated validity indicator of each of the accessor and the equivalent accessors to indicate that the accessor and the equivalent accessors are invalid.

Claims (54)

1. A data processing apparatus comprising:

memory circuitry to provide a physical address space logically divided into a plurality of memory segments and to store a plurality of accessors with associated validity indicators, wherein each of the accessors controls access to a region of the physical address space in dependence on at least its associated validity indicator;

tracking circuitry to track which of the memory segments contain the accessors; and

invalidation circuitry to respond to a request to invalidate an accessor by determining a set of equivalent accessors with reference to the tracking circuitry, and to invalidate the accessor and the equivalent accessors by setting the associated validity indicator of each of the accessor and the equivalent accessors to indicate that the accessor and the equivalent accessors are invalid.

2. The data processing apparatus according to claim 1 , wherein

the equivalent accessors comprise those of the accessors that control access to the region of the physical address space.

3. The data processing apparatus according to claim 1 , wherein

the accessor comprises a pointer.

4. The data processing apparatus according to claim 3 , wherein

the accessor comprises bounds information that defines the region of the physical address space that the pointer can be used to access.

5. The data processing apparatus according to claim 4 , wherein

the equivalent accessors comprise those of the accessors where the bounds information matches that of the accessor.

6. The data processing apparatus according to claim 4 , wherein

the equivalent accessors comprise those of the accessors where the bounds information defines a sub-region of the region of the physical address space.

7. The data processing apparatus according to claim 1 , wherein

the tracking circuitry is adapted to indicate whether each of the memory segments contains one of the accessors.

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

the tracking circuitry comprises a bit field comprising a plurality of bits; and

the plurality of bits is adapted to indicate which of the memory segments contains one of the accessors.

9. The data processing apparatus according to claim 1 , wherein

the tracking circuitry comprises a hash table; and

the hash table accepts, as an input, a hash of at least part of the accessor.

10. The data processing apparatus according to claim 1 , wherein

the tracking circuitry comprises a bloom filter.

11. The data processing apparatus according to claim 10 , wherein

the invalidation circuitry is adapted, when the tracking circuitry indicates that a given memory segment contains one of the accessors, to perform a sweep of the given memory segment and rebuild an entry of the bloom filter that corresponds with the given memory segment.

12. The data processing apparatus according to claim 11 , wherein

the invalidation circuitry is adapted to rebuild the entry of the bloom filter that corresponds with the given memory segment by considering the associated validity indicator of each of the accessors in the given memory segment.

13. The data processing apparatus according to claim 11 , wherein

the entry of the bloom filter that corresponds with the given memory segment is rebuilt by performing a rewrite of those of the accessors that are in the given memory segment; and

the invalidation circuitry is adapted to operate in a sweep mode of operation in which the rewrite is performed by inhibiting physically writing the accessor to the memory when the associated validity indicator indicates validity.

14. The data processing apparatus according to claim 1 , wherein

the invalidation circuitry is adapted, when the tracking circuitry indicates that a given memory segment contains one of the accessors, to sweep the given memory segment to determine the equivalent accessors.

15. The data processing apparatus according to claim 1 , wherein

the invalidation circuitry is adapted, when the tracking circuitry indicates that a given memory segment lacks each of the accessors, to refrain from sweeping the given memory segment to determine the equivalent accessors.

16. The data processing apparatus according to claim 1 , wherein

the memory circuitry is further logically divided so as to comprise an active stack region;

the tracking circuitry comprises a bit field to track the active stack region; and

the tracking circuitry comprises a hash table or bloom filter to track the memory segments.

17. The data processing apparatus according to claim 1 , wherein

the memory circuitry is further logically divided so as to comprise an active stack region; and

the tracking circuitry is restricted from tracking the active stack region.

18. The data processing apparatus according to claim 1 , wherein

the tracking circuitry is adapted to further track those of the accessors that are stored outside the memory segments.

19. A data processing method comprising:

logically dividing a physical address space of a memory into a plurality of memory segments;

storing a plurality of accessors with associated validity indicators, wherein each of the accessors controls access to a region of the physical address space in dependence on at least its associated validity indicator;

tracking which of the memory segments contain the accessors;

responding to a request to invalidate an accessor by determining a set of equivalent accessors with reference to the tracking circuitry; and

invalidating the accessor and the equivalent accessors by setting the associated validity indicator of each of the accessor and the equivalent accessors to indicate that the accessor and the equivalent accessors are invalid.

20. A non-transitory computer-readable storage medium comprising a computer program for controlling a host data processing apparatus to provide an instruction execution environment comprising:

a plurality of data structures to store a plurality of accessors with associated validity indicators, wherein each of the accessors controls access to one of the data structures in dependence on at least its associated validity indicator;

tracking program logic to track which of the data structures contain the accessors; and

invalidation program logic to respond to a request to invalidate an accessor by determining a set of equivalent accessors with reference to the tracking program logic, and to invalidate the accessor and the equivalent accessors by setting the associated validity indicator of each of the accessor and the equivalent accessors to indicate that the accessor and the equivalent accessors are invalid.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2020
From: BOETTCHER, MATTHIAS LOTHAR
To: ARM LIMITED
Reel/Frame 053240/0616 →
Continuity (1)
Related Publication 20210294748A1 · Sep 23, 2021