IP Library Granted Patent US 12,299,448
Granted Patent B2
US 12,299,448 · App. 17/956,034 · Granted May 13, 2025

Store instruction merging with pattern detection

Inventor: Karthik Thucanakkenpalayam Sundararajan (Fremont, CA)
Assignee: Synopsys, Inc.
G06F9/30189G06F9/30043
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,299,448
App. No.
17/956,034
Granted
May 13, 2025
Kind
B2
Abstract

Merging store instructions for a memory includes receiving a first store instruction having a first address, and determining a first pattern based on a comparison of the first address and a second address of an entry within a buffer. Further, a size field of the entry is updated based on the first pattern. The first address of the first store instruction is merged with the second address within the entry to generate a merged instruction. The merged store instruction is communicated to the memory.

Claims (50)

1. A method comprising:

receiving a first store instruction having a first address;

determining a first pattern based on a comparison of the first address and a second address in an entry within a buffer, wherein the entry comprises a size field comprising a plurality of bits, wherein determining the first pattern comprises determining whether or not an address gap is between the first address and the second address, and wherein the address gap corresponds to one or more addresses between the first address and the second address;

updating the size field based on the first pattern, wherein first bits of the plurality of bits of the size field are indicative of the first pattern and a second one or more bits of the plurality of bits of the size field is indicative of the address gap between the first address and the second address; and

merging the first address of the first store instruction with the second address within the entry to generate a merged instruction, wherein the one or more addresses of the address gap are omitted from the merged instruction.

2. The method of claim 1 , wherein determining the first pattern comprises:

determining that the first address is contiguous with the second address.

3. The method of claim 1 , wherein determining the first pattern comprises:

determining that the second address is byte incremental with the first address, and wherein updating the size field comprises updating the size field by one based on determining that the second address is byte incremental with the first address.

4. The method of claim 1 , wherein determining the first pattern comprises:

determining that the second address is half-word incremental with the first address, and wherein updating the size field comprises updating the size field by two based on determining that the second address is half-word incremental with the first address.

5. The method of claim 1 , wherein determining the first pattern comprises:

determining that the second address is word incremental with the first address, and wherein updating the size field comprises updating the size field by four based on determining that the second address is word incremental with the first address.

6. The method of claim 1 , wherein determining the first pattern comprises:

determining that the second address is double-word incremental with the first address, and wherein updating the size field comprises updating the size field by eight based on determining that the second address is double-word incremental with the first address.

7. The method of claim 1 further comprising updating a direction field of the entry based on a direction of the first pattern.

8. The method of claim 1 further comprising communicating a transaction corresponding to the merged instruction via a communication bus.

9. The method of claim 1 , wherein the address gap corresponds to two or more addresses between the first address and the second address.

10. The method of claim 1 , wherein a write mask associated with the merged instruction indicates the first pattern and the address gap between the first address and the second address.

11. The method of claim 10 , wherein a first one or more bits of the write mask are associated with the first address, a second one or more bits of the write mask are associated with the second address, and a third one or more bits of the write mask are associated with the one or more addresses of the address gap.

12. A processing system comprising:

a memory;

a processor configured to access the memory via a first store instruction; and

buffer circuitry configured to:

receive the first store instruction having a first address from the processor;

determine a first pattern based on a comparison of the first address and a second address in an entry within a buffer, wherein the entry comprises a size field comprising a plurality of bits, wherein determining the first pattern comprises determining whether or not an address gap is between the first address and the second address, and wherein the address gap corresponds to one or more addresses between the first address and the second address;

update the size field based on the first pattern, wherein first bits of the plurality of bits of the size field are indicative of the first pattern and a second one or more bits of the plurality of bits of the size field is indicative of the address gap between the first address and the second address; and

merge the first address of the first store instruction with the second address in the entry to generate a merged instruction, wherein the one or more addresses of the address gap are omitted from the merged instruction.

13. The processing system of claim 12 , wherein determining the first pattern comprises:

determining that the first address is contiguous with the second address.

14. The processing system of claim 12 , wherein determining the first pattern comprises:

determining that the second address is byte incremental with the first address, and wherein updating the size field comprises updating the size field by one based on determining that the second address is byte incremental with the first address.

15. The processing system of claim 12 , wherein determining the first pattern comprises:

determining that the second address is half-word incremental with the first address, and wherein updating the size field comprises updating the size field by two based on determining that the second address is half-word incremental with the first address.

16. The processing system of claim 12 , wherein determining the first pattern comprises:

determining that the second address is word incremental with the first address, and wherein updating the size field comprises updating the size field by four based on determining that the second address is word incremental with the first address.

17. The processing system of claim 12 , wherein determining the first pattern comprises:

determining that the second address is double-word incremental with the first address, and wherein updating the size field comprises updating the size field by eight based on determining that the second address is double-word incremental with the first address.

18. The processing system of claim 12 , wherein the buffer circuitry is further configured to update a direction field of the entry based on a direction of the first pattern.

19. A buffer circuitry configured to:

receive a first store instruction having a first address;

determine a first pattern based on a comparison of the first address and a second address in an entry of a buffer location, wherein the entry includes a size field comprising a plurality of bits, wherein determining the first pattern comprises determining whether or not an address gap is between the first address and the second address, and wherein the address gap corresponds to one or more addresses between the first address and the second address;

update the size field based on the first pattern, wherein first bits of the plurality of bits of the size field are indicative of the first pattern and a second one or more bits of the plurality of bits of the size field is indicative of the address gap between the first address and the second address; and

merge the first address of the first store instruction with the second address within the entry to generate a merged instruction, wherein the one or more addresses of the address gap are omitted from the merged instruction.

20. The buffer circuitry of claim 19 , wherein determining the first pattern comprises at least one of:

determining that the first address is contiguous with the second address;

determining that the second address is byte incremental with the first address, wherein updating the size field comprises updating the size field by one based on determining that the second address is byte incremental with the first address;

determining that the second address is half-word incremental with the first address, wherein updating the size field comprises updating the size field by two based on determining that the second address is half-word incremental with the first address;

determining that the second address is word incremental with the first address, wherein updating the size field comprises updating the size field by four based on determining that the second address is word incremental with the first address; and

determining that the second address is double-word incremental with the first address, and wherein updating the size field comprises updating the size field by eight based on determining that the second address is double-word incremental with the first address.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 23, 2026
From: SYNOPSYS, INC.
To: MIPS HOLDING, INC.
Reel/Frame 075801/0225 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2022
From: THUCANAKKENPALAYAM SUNDARARAJAN, KARTHIK
To: SYNOPSYS INCORPORATED
Reel/Frame 061255/0305 →
Continuity (1)
Related Publication 20240111537A1 · Apr 4, 2024
References Cited (9)
US 4805098A · Mills, Jr. · 1989 [cited by examiner]
US 5860107A · Patel · 1999 [cited by examiner]
US 5894569A · Arimilli · 1999 [cited by examiner]
US 5956503A · Arimilli · 1999 [cited by examiner]
US 6266747B1 · Dahl · 2001 [cited by examiner]
US 20020184460A1 · Tremblay · 2002 [cited by examiner]
US 20140143471A1 · Moyer · 2014 [cited by examiner]
US 20190163475A1 · King · 2019 [cited by examiner]
US 20240320009A1 · Zhang · 2024 [cited by examiner]