IP Library › Granted Patent US 12,602,329
Granted Patent B2
US 12,602,329 · App. 18/475,310 · Granted Apr 14, 2026

Atomic memory operations for address translation

Inventors: John Ingalls (Mountain View, CA); Andrew Waterman (Berkeley, CA)
Assignee: SiFive, Inc.
G06F12/1009
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,602,329
App. No.
18/475,310
Granted
Apr 14, 2026
Kind
B2
Abstract

Systems and methods are disclosed for atomic memory operations for address translation. For example, an integrated circuit (e.g., a processor) for executing instructions includes a memory system including random access memory; a bus connected to the memory system; and an atomic memory operation circuitry configured to receive a request from the bus to access an entry in a page table stored in the memory system, wherein the request includes an indication of whether an instruction that references an address being translated using the entry is a store instruction; access the entry in the page table; responsive to the indication indicating that the instruction is a store instruction, set a dirty bit of the entry in the page table; and transmit contents of the entry on the bus in response to the request.

Claims (54)

1 . An integrated circuit comprising:

a memory system including random access memory;

a bus connected to the memory system; and

an address translation engine connected to the bus, wherein the address translation engine is configured to:

generate a request on the bus to access an entry in a page table stored in the memory system, wherein the request includes an indication of whether an instruction that references an address being translated using the entry is a store instruction;

wherein the memory system is configured to:

receive the request from the bus;

access the entry in the page table, wherein the entry includes an accessed bit indicating whether a virtual page associated with the entry has been accessed since a last time the accessed bit was cleared and a dirty bit indicating whether the virtual page associated with the entry has been written to since a last time the dirty bit was cleared;

as part of a single, uninterrupted operation responsive to the request, set the dirty bit of the entry when the request includes the indication that the instruction is a store instruction; and

transmit contents of the entry on the bus in response to the request.

2 . The integrated circuit of claim 1 , further comprising:

an atomic memory operation circuitry of the memory system configured to perform the receiving, accessing, setting, and transmitting.

3 . The integrated circuit of claim 2 , in which the atomic memory operation circuitry is configured to:

check the indication of whether the instruction that references the address being translated using the entry is a store instruction.

4 . The integrated circuit of claim 3 , in which the atomic memory operation circuitry is configured to set the dirty bit prior to transmitting contents of the entry on the bus in response to the request.

5 . The integrated circuit of claim 2 , in which the atomic memory operation circuitry is configured to:

set the accessed bit prior to transmitting contents of the entry on the bus in response to the request.

6 . The integrated circuit of claim 2 , in which the atomic memory operation circuitry is configured to:

check the indication of whether the instruction that references the address being translated using the entry is a store instruction; and

responsive to the indication indicating that the instruction is a store instruction, check a write permission bit of the entry.

7 . The integrated circuit of claim 2 , in which the atomic memory operation circuitry is configured to:

check permission bits of the entry prior to transmitting contents of the entry on the bus in response to the request.

8 . The integrated circuit of claim 2 , in which the atomic memory operation circuitry is integrated with a cache of the memory system.

9 . The integrated circuit of claim 1 , in which the request includes an indication of whether the instruction that references the address being translated using the entry is privileged or user-mode.

10 . The integrated circuit of claim 1 , in which the address translation engine is part of a translation lookaside buffer.

11 . The integrated circuit of claim 1 , in which the address translation engine is part of an input/output memory management unit.

12 . A method comprising:

generating a request on a bus to access an entry in a page table stored in a memory system, wherein the request includes an indication of whether an instruction that references an address being translated using the entry is a store instruction;

receiving the request from the bus;

accessing the entry in the page table, wherein the entry includes an accessed bit indicating whether a virtual page associated with the entry has been accessed since a last time the accessed bit was cleared and a dirty bit indicating whether the virtual page associated with the entry has been written to since a last time the dirty bit was cleared;

as part of a single, uninterrupted operation responsive to the request, setting the dirty bit of the entry when the request includes the indication that the instruction is a store instruction; and

transmitting contents of the entry on the bus in response to the request.

13 . The method of claim 12 , wherein the receiving, accessing, setting, and transmitting are performed by an atomic memory operation circuitry.

14 . The method of claim 12 , further comprising:

checking the indication of whether the instruction that references the address being translated using the entry is a store instruction.

15 . The method of claim 12 , further comprising:

setting the accessed bit prior to transmitting contents of the entry on the bus in response to the request.

16 . The method of claim 12 , further comprising:

checking the indication of whether the instruction that references the address being translated using the entry is a store instruction; and

responsive to the indication indicating that the instruction is a store instruction, checking a write permission bit of the entry.

17 . A non-transitory computer readable medium comprising a circuit representation that, when processed by a computer, is used to program or manufacture an integrated circuit comprising:

a memory system including random access memory;

a bus connected to the memory system; and

an address translation engine connected to the bus, wherein the address translation engine is configured to:

generate a request on the bus to access an entry in a page table stored in the memory system, wherein the request includes an indication of whether an instruction that references an address being translated using the entry is a store instruction;

wherein the memory system is configured to:

receive the request from the bus;

access the entry in the page table, wherein the entry includes an accessed bit indicating whether a virtual page associated with the entry has been accessed since a last time the accessed bit was cleared and a dirty bit indicating whether the virtual page associated with the entry has been written to since a last time the dirty bit was cleared;

as part of a single, uninterrupted operation responsive to the request, set the dirty bit of the entry when the request includes the indication that the instruction is a store instruction; and

transmit contents of the entry on the bus in response to the request.

18 . The non-transitory computer readable medium of claim 17 , wherein the receiving, accessing, setting, and transmitting are performed by an atomic memory operation circuitry the circuit representation, when processed by the computer, is used to program or manufacture the integrated circuit comprising:

an atomic memory operation circuitry of the memory system configured to:

access the entry in the page table, wherein the entry includes an accessed bit indicating whether a virtual page associated with the entry has been accessed since a last time the accessed bit was cleared and the dirty bit indicating whether the virtual page associated with the entry has been written to since a last time the dirty bit was cleared; and

transmit contents of the entry on the bus in response to the request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2023
From: INGALLS, JOHN; WATERMAN, ANDREW
To: SIFIVE, INC.
Reel/Frame 065040/0664 →
Continuity (2)
Provisional Application 63411094 · Sep 28, 2022
Related Publication 20240104024A1 · Mar 28, 2024
References Cited (11)
US 5680565A · Glew · 1997 [cited by examiner]
US 6141734A · Razdan · 2000 [cited by examiner]
US 11620233B1 · Habusha · 2023 [cited by examiner]
US 12164445B1 · Naaman · 2024 [cited by examiner]
US 20100011188A1 · Eddy · 2010 [cited by examiner]
US 20140337585A1 · Grisenthwaite · 2014 [cited by examiner]
US 20150378777A1 · Gschwind · 2015 [cited by examiner]
US 20170097896A1 · Molnar · 2017 [cited by examiner]
US 20200310972A1 · Shanbhogue · 2020 [cited by examiner]
US 20240126702A1 · Dechene · 2024 [cited by examiner]
US 20240320002A1 · Lawlor · 2024 [cited by examiner]