IP Library Granted Patent US 11,126,554
Granted Patent B2
US 11,126,554 · App. 16/361,512 · Granted Sep 21, 2021

Prefetching write permissions into address translation cache

Inventors: Rupin H. Vakharwala (Hillsboro, OR); Paula Petrica (Portland, OR)
Assignee: Intel Corporation
G06F12/0862G06F12/00G06F12/1036G06F13/42G06F2213/0026
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,126,554
App. No.
16/361,512
Granted
Sep 21, 2021
Kind
B2
Abstract

Systems, methods, and devices can include circuitry or computer program products to receive a memory address translation request message from a downstream connected device; identify, from the memory address translation request message, a permission indication that the device intends to perform a write access to one or more memory address locations specified in the memory address translation request message; identify, from an address translation and protection table (ATPT), a dirty bit value associated with the one or more memory address locations; and transmit a translation of the one or more memory address locations and a read or read+write permission to the device based on the permission indication in the memory address translation request message and the dirty bit.

Claims (98)

1. An apparatus comprising circuitry to:

receive a memory address translation request message from a downstream connected device;

identify, from the memory address translation request message, a permission indication that the device intends to perform a write access to one or more memory address locations specified in the memory address translation request message;

identify, from an address translation and protection table (ATPT), a dirty bit value associated with the one or more memory address locations; and

transmit a translation of the one or more memory address locations and a read or read+write permission to the device based on the permission indication in the memory address translation request message and the dirty bit.

2. The apparatus of claim 1 , wherein the memory address translation request message comprises a translation request header associated with a Peripheral Component Interconnect Express (PCIe)-based address translation services (ATS) protocol.

3. The apparatus of claim 1 , the apparatus comprising circuitry to:

determine that the permission indication comprises a potential write bit set;

determine that the dirty bit is set; and

transmit a read+write permission to the device for the one or more memory address locations specified by the memory address translation request message.

4. The apparatus of claim 1 , the apparatus comprising circuitry to:

determine that the permission indication comprises a potential write bit set;

determine that the dirty bit is clear; and

transmit a read-only permission to the device for the one or more memory address locations specified by the memory address translation request message.

5. The apparatus of claim 1 , the apparatus comprising circuitry to:

determine that the permission indication comprises a potential write bit set;

determine that a no-write bit is set; and

transmit a read-only permission to the device for the one or more memory address locations specified by the memory address translation request message.

6. The apparatus of claim 1 , the apparatus comprising circuitry to:

determine that the permission indication comprises a potential write bit set;

determine that a no-write bit is set; and

transmit a read+write permission to the device for the one or more memory address locations specified by the memory address translation request message.

7. The apparatus of claim 1 , wherein the apparatus comprises a translation agent.

8. A computer implemented method comprising:

receiving, at a translation agent, a memory address translation request message from a downstream connected device;

identifying, from the memory address translation request message, a permission indication that the device intends to perform a write access to one or more memory address locations specified in the memory address translation request message;

identifying, from an address translation and protection table (ATPT), a dirty bit value associated with the one or more memory address locations; and

transmitting a translation of the one or more memory address locations and a read or read+write permission to the device based on the permission indication in the memory address translation request message and the dirty bit.

9. The method of claim 8 , wherein the memory address translation request message comprises a translation request header associated with a Peripheral Component Interconnect Express (PCIe)-based address translation services (ATS) protocol.

10. The method of claim 8 , the method comprising:

determining that the permission indication comprises a potential write bit set;

determining that the dirty bit is set; and

transmitting a read+write permission to the device for the one or more memory address locations specified by the memory address translation request message.

11. The method of claim 8 , the method comprising:

determining that the permission indication comprises a potential write bit set;

determining that the dirty bit is clear; and

transmitting a read-only permission to the device for the one or more memory address locations specified by the memory address translation request message.

12. The method of claim 8 , the method comprising:

determining that the permission indication comprises a potential write bit set;

determining that a no-write bit is set; and

transmitting a read-only permission to the device for the one or more memory address locations specified by the memory address translation request message.

13. The method of claim 8 , the method comprising:

determining that the permission indication comprises a potential write bit set;

determining that a no-write bit is set; and

transmitting a read+write permission to the device for the one or more memory address locations specified by the memory address translation request message.

14. A non-transitory computer-readable medium having program instructions stored therein, wherein the program instructions are executable by a computer system to perform operations comprising:

receiving, at a translation agent, a memory address translation request message from a downstream connected device;

identifying, from the memory address translation request message, a permission indication that the device intends to perform a write access to one or more memory address locations specified in the memory address translation request message;

identifying, from an address translation and protection table (ATPT), a dirty bit value associated with the one or more memory address locations; and

transmitting a translation of the one or more memory address locations and a read or read+write permission to the device based on the permission indication in the memory address translation request message and the dirty bit.

15. The non-transitory computer-readable medium of claim 14 , wherein the memory address translation request message comprises a translation request header associated with a Peripheral Component Interconnect Express (PCIe)-based address translation services (ATS) protocol.

16. The non-transitory computer-readable medium of claim 14 , the operations comprising:

determining that the permission indication comprises a potential write bit set;

determining that the dirty bit is set; and

transmitting a read+write permission to the device for the one or more memory address locations specified by the memory address translation request message.

17. The non-transitory computer-readable medium of claim 14 , the operations comprising:

determining that the permission indication comprises a potential write bit set;

determining that the dirty bit is clear; and

transmitting a read-only permission to the device for the one or more memory address locations specified by the memory address translation request message.

18. The non-transitory computer-readable medium of claim 14 , the operations comprising:

determining that the permission indication comprises a potential write bit set;

determining that a no-write bit is set; and

transmitting a read-only permission to the device for the one or more memory address locations specified by the memory address translation request message.

19. The non-transitory computer-readable medium of claim 14 , the operations comprising:

determining that the permission indication comprises a potential write bit set;

determining that a no-write bit is set; and

transmitting a read+write permission to the device for the one or more memory address locations specified by the memory address translation request message.

20. A system comprising:

a host system comprising:

a translation agent, and

an address translation and protection table; and

an endpoint device coupled to the host system by a link based on a Peripheral Component Interconnect Express (PCIe) protocol, the endpoint device comprising:

an address translation cache; and

logic circuitry to:

construct a translation request header that comprises one or more memory addresses for translation and an indication of a potential write access to the one or more memory addresses, and

transmit the translation request header to the translation agent across link; and

the translation agent comprising circuitry to:

receive a memory address translation request message from a downstream connected device;

identify, from the memory address translation request message, a permission indication that the device intends to perform a write access to one or more memory address locations specified in the memory address translation request message;

identify, from an address translation and protection table (ATPT), a dirty bit value associated with the one or more memory address locations; and

transmit a translation of the one or more memory address locations and a read or read+write permission to the device based on the permission indication in the memory address translation request message and the dirty bit.

21. The system of claim 20 , wherein the memory address translation request message comprises a translation request header associated with a Peripheral Component Interconnect Express (PCIe)-based address translation services (ATS) protocol.

22. The system of claim 20 , the translation agent comprising circuitry to:

determine that the permission indication comprises a potential write bit set;

determine that the dirty bit is set; and

transmit a read+write permission to the device for the one or more memory address locations specified by the memory address translation request message.

23. The system of claim 20 , the translation agent comprising circuitry to:

determine that the permission indication comprises a potential write bit set;

determine that the dirty bit is clear; and

transmit a read-only permission to the device for the one or more memory address locations specified by the memory address translation request message.

24. The system of claim 20 , the translation agent comprising circuitry to:

determine that the permission indication comprises a potential write bit set;

determine that a no-write bit is set; and

transmit a read-only permission to the device for the one or more memory address locations specified by the memory address translation request message.

25. The system of claim 20 , the translation agent comprising circuitry to:

determine that the permission indication comprises a potential write bit set;

determine that a no-write bit is set; and

transmit a read+write permission to the device for the one or more memory address locations specified by the memory address translation request message.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE APPLICATION NUMBER IN THE ASSIGNMENT DOCUMENT PREVIOUSLY RECORDED AT REEL: 048799 FRAME: 0006. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT . Recorded Feb 3, 2022
From: VAKHARWALA, RUPIN H.; PETRICA, PAULA
To: INTEL CORPORATION
Reel/Frame 058950/0647 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2019
From: VAKHARWALA, RUPIN H.; PETRICA, PAULA
To: INTEL CORPORATION
Reel/Frame 048799/0006 →
Continuity (1)
Related Publication 20190220413A1 · Jul 18, 2019
Cited By (1)
US 12,455,833