IP Library › Granted Patent US 11,580,036
Granted Patent B1
US 11,580,036 · App. 17/385,962 · Granted Feb 14, 2023

Processor with conditional-fence commands excluding designated memory regions

Inventors: Ilan Pardo (Ramat-Hasharon, IL); Shahaf Shuler (Kibbutz Lohamei Hagetaot, IL); George Elias (Tel Aviv, IL); Nizan Atias (Shani Livna, IL); Adi Maymon (Omer, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
G06F12/1441G06F9/30043G06F12/0238G06F12/1458G06F2212/7201
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,580,036
App. No.
17/385,962
Granted
Feb 14, 2023
Kind
B1
Abstract

An apparatus includes a processor, configured to designate a memory region in a memory, and to issue (i) memory-access commands for accessing the memory and (ii) a conditional-fence command associated with the designated memory region. Memory-Access Control Circuitry (MACC) is configured, in response to identifying the conditional-fence command, to allow execution of the memory-access commands that access addresses within the designated memory region, and to defer the execution of the memory-access commands that access addresses outside the designated memory region, until completion of all the memory-access commands that were issued before the conditional-fence command.

Claims (29)

1. An apparatus, comprising:

a processor, configured to designate a memory region in a memory, and to issue (i) memory-access commands for accessing the memory and (ii) a conditional-fence command associated with the designated memory region; and

Memory-Access Control Circuitry (MACC), which is configured, in response to a memory-access command, to:

check if all memory-access commands accessing the memory prior to a last fence instruction have been completed;

check whether the memory-access command accesses an address in the designated memory region;

execute the memory-access command immediately, if all memory-access commands accessing the memory, prior to the last fence instruction have been completed, or if the memory-access command accesses an address in the designated memory region; and

defer execution of the memory-access command if not all memory-access commands prior to the last fence instruction have been completed, and the memory-access command accesses an address not in the designated memory region.

2. The apparatus according to claim 1 , wherein the processor is configured to run one or more threads, and to include in the designated memory region only private intra-thread storage.

3. The apparatus according to claim 1 , wherein the processor is one of multiple processors that share the memory, and wherein the processor is configured to include in the designated memory region only private intra-processor storage.

4. The apparatus according to claim 1 ,

wherein the processor is configured to issue the memory-access commands in terms of logical addresses, and the apparatus comprises a memory management unit (MMU) which translates logical addresses to physical addresses, and wherein the MMU is configured to provide with the physical addresses, indicators that identify whether the logical addresses are in the designated memory region, and

wherein the MACC is configured to check whether the memory-access command accesses an address in the designated memory region based on the indicators from the MMU.

5. The apparatus according to claim 1 , wherein the processor is configured to designate the memory region by specifying a designated address range, and wherein the MACC is configured to check whether the memory-access command accesses an address in the designated memory region by comparing the addresses specified in the memory-access commands to the designated address range.

6. The apparatus according to claim 1 , wherein the conditional-fence command is restricted to load commands, and wherein the MACC is configured to defer only the load commands that were issued before the conditional-fence command.

7. The apparatus according to claim 1 , wherein the conditional-fence command is restricted to store commands, and wherein the MACC is configured to defer only store commands that were issued before the conditional-fence command.

8. The apparatus according to claim 1 , wherein the processor is configured to designate the memory region in logical address space, and the MACC is configured to check whether the memory-access command accesses an address in the designated memory region, on logical addresses.

9. The apparatus according to claim 1 , wherein the processor is configured to designate the memory region in physical address space, and the MACC is configured to check whether the memory-access command accesses an address in the designated memory region, on physical addresses.

10. The apparatus according to claim 1 , wherein the processor is configured to designate a plurality of different memory regions, for corresponding different conditional fence commands referring to different types of access, and wherein the MACC is configured in response to the memory-access command to check whether the memory-access command accesses an address in the designated memory region corresponding to a type of access prescribed by the memory-access command.

11. The apparatus according to claim 1 , wherein the MACC is configured to determine whether the last fence instruction was conditional, and to allow immediate execution of the memory-access command even if not all memory-access commands prior to the last fence instruction have been completed, only if the last fence instruction was conditional.

12. A method, comprising:

receiving (i) memory-access commands for accessing a memory and (ii) a conditional-fence command associated with a designated memory region in the memory; and

in response to identifying the conditional-fence command, allowing execution of the memory-access commands that access addresses within the designated memory region, even if not all the memory accesses to the memory prior to the conditional-fence command have been completed, and deferring the execution of the memory-access commands that access addresses outside the designated memory region until completion of all the memory-access commands that were issued before the conditional-fence command.

13. The method according to claim 12 , wherein the memory-access commands and the conditional-fence command are received from a processor running one or more threads, and wherein the memory region is designated for private intra-thread storage.

14. The method according to claim 12 , wherein the memory is shared by multiple processors, and wherein the memory region is designated for private intra-processor storage.

15. The method according to claim 12 , wherein the method comprises issuing the memory-access commands in terms of logical addresses, receiving from a memory management unit (MMU) that translates the logical addresses into physical addresses, for the memory-access commands, indications as to whether the translated physical address is in the designated memory region, and

wherein allowing and deferring the execution comprises allowing or deferring the execution of the memory-access commands based on the indications.

16. The method according to claim 12 , wherein the memory region is designated by specifying a designated address range, and wherein allowing or deferring the execution comprises comparing the addresses specified in the memory-access commands to the designated address range.

17. The method according to claim 12 , wherein the conditional-fence command is restricted to load commands, and wherein allowing or deferring the execution comprises deferring only the load commands that were issued before the conditional-fence command.

18. The method according to claim 12 , wherein the conditional-fence command is restricted to store commands, and wherein allowing or deferring the execution comprises deferring only the store commands that were issued before the conditional-fence command.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 27, 2021
From: PARDO, ILAN; SHULER, SHAHAF; ELIAS, GEORGE; ATIAS, NIZAN; MAYMON, ADI
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 056983/0839 →
Cited By (1)
US 12,561,144