IP Library Granted Patent US 7,844,785
Granted Patent B2
US 7,844,785 · App. 11/876,212 · Granted Nov 30, 2010

Method and apparatus for memory access optimization

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 7,844,785
App. No.
11/876,212
Granted
Nov 30, 2010
Kind
B2
Abstract

Access to a memory is optimized by monitoring physical memory addresses and by detecting a memory access conflict based on the monitored physical memory addresses. The data stored at a physical address for which a conflict was detected is transferred to a new physical address.

Claims (44)

1. A memory access optimizer, comprising:

a conflict detector configured to monitor physical memory addresses and to detect a memory access conflict based on the monitored physical memory addresses, wherein the memory access optimizer is configured to access a memory having a plurality of separately accessible memory portions comprising a plurality of memory elements, and wherein the conflict detector is configured to detect the conflict when two or more consecutive memory accesses are performed to different memory elements of the same memory portion; and

a storage location changer configured to transfer data stored at a physical address for which a conflict is detected to a new physical address.

2. The memory access optimizer in accordance with claim 1 , wherein the memory access optimizer is configured to access a memory having a plurality of memory banks, each memory bank having a plurality of rows of simultaneously selectable memory elements; and

wherein the conflict detector is configured to detect a conflict when two consecutive memory accesses are performed to different rows of the same memory bank.

3. The memory access optimizer in accordance with claim 2 , wherein the storage location changer is configured to transfer the data stored in a row of a first memory bank to a row of a second memory bank.

4. The memory access optimizer in accordance with claim 2 , wherein the conflict detector is configured to detect a conflict when a command cycle comprising an activate, a precharge and an activate command is detected in two consecutive memory accesses for the same memory bank.

5. The memory access optimizer in accordance with claim 1 , wherein the storage location changer is configured to transfer the data from a memory element of a first memory portion to a memory element of a second memory portion.

6. The memory access optimizer in accordance with claim 1 , wherein the memory access optimizer is configured to access a memory with a plurality of ranks, each rank having a plurality of memory banks, each memory bank having a plurality of rows of simultaneously selectable memory elements, wherein

the storage location changer is configured to transfer the data from a row of a memory bank of a first rank to a row of an arbitrary memory bank of a second different rank.

7. The memory access optimizer in accordance with claim 1 , wherein the storage location changer is configured to transfer the data after a conflict for a same physical address was determined a predetermined number of times.

8. The memory access optimizer in accordance with claim 1 , wherein the storage location changer further comprises a buffer memory configured to temporarily store the data to be transferred.

9. The memory access optimizer in accordance with claim 1 , further comprising an address translator configured to replace the physical address by the new physical address for physical addresses from which data was transferred.

10. The memory access optimizer in accordance with claim 9 , further comprising:

a memory interface configured to physically access the memory using the physical address provided by the address translator.

11. The memory access optimizer in accordance with claim 9 , wherein the address translator further comprises an input interface configured to receive memory addresses to be accessed.

12. The memory access optimizer in accordance with claim 1 , wherein the conflict detector is configured to detect memory access conflicts associated to read operations.

13. The memory access optimizer in accordance with claim 1 , wherein the memory access optimizer is adapted to optimize the memory access to a memory having a plurality of banks, each bank having a plurality of rows of simultaneously selectable memory elements, wherein:

the conflict detector is configured to detect a memory access conflict when consecutive memory accesses are performed to different rows within the same bank; and

the storage location changer is configured to transfer data stored in a row for which a conflict has been detected to a new row of a different bank.

14. A memory access optimizer, comprising:

a conflict detector configured to monitor physical memory addresses and to detect a memory access conflict based on the monitored physical memory addresses, wherein the memory access optimizer is configured to access a memory having a plurality of separately accessible memory portions comprising a plurality of memory elements, and wherein the conflict detector is configured to detect the conflict when two or more consecutive memory accesses are performed to different memory elements of the same memory portion;

a storage location changer configured to transfer data stored at a physical address for which a conflict is detected to a new physical address;

an address translator configured to receive memory addresses and to translate the received addresses to physical memory addresses, the address translator being further configured to replace the physical addresses by the new physical addresses for physical addresses from which data has been transferred by the storage location changer; and

a memory interface configured to physically access the memory using the physical address provided by the address translator.

15. A memory system, comprising:

a memory access optimizer, wherein the memory access optimizer is configured to access a memory having a plurality of separately accessible memory portions comprising a plurality of memory elements, the memory access optimizer comprising:

a conflict detector configured to monitor physical memory addresses and to detect a memory access conflict based on the monitored physical memory addresses and configured to detect the conflict when two or more consecutive memory accesses are performed to different memory elements of the same memory portion; and

a storage location changer configured to transfer data stored at a physical address for which a conflict is detected to a new physical address; and

a memory accessible using physical memory addresses, the memory comprising the physical address and the new physical address.

16. A method for optimizing a memory access, the method comprising:

monitoring physical memory addresses for detecting a memory access conflict based on the monitored memory addresses, wherein the memory comprises a plurality of separately accessible memory portions having a plurality of memory elements;

detecting a conflict when two consecutive memory accesses are performed to different memory elements of the same memory portion; and

transferring data stored at a physical address for which a conflict is detected to a new physical address.

17. The method in accordance with claim 16 , wherein the data is transferred from a memory element of a first memory portion to a memory element of a second memory portion.

18. The method in accordance with claim 16 , wherein the data is transferred after the same memory conflict has been detected for a predetermined number of times.

19. The method in accordance with claim 16 , wherein the method is adapted to optimize the access to a memory having a plurality of banks, each bank having a plurality of rows of simultaneously selectable memory elements, wherein:

a memory access conflict is detected, when consecutive memory accesses are performed to different rows within the same memory bank; and

data stored in a row for which a conflict was detected is transferred to a row in a different bank.

20. An apparatus for optimizing memory access, the apparatus comprising:

means for accessing a memory having a plurality of separately accessible memory portions comprising a plurality of memory elements;

means for monitoring physical memory addresses;

means for detecting a memory access conflict based on the monitored physical memory addresses, wherein the means for detecting the memory access conflict detect a conflict when two or more consecutive memory accesses are performed to different memory elements of the same memory portion; and

means for transferring data stored at a physical address for which a conflict was detected to a new physical address.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2015
From: INFINEON TECHNOLOGIES AG
To: POLARIS INNOVATIONS LIMITED
Reel/Frame 037254/0782 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2015
From: QIMONDA AG
To: INFINEON TECHNOLOGIES AG
Reel/Frame 035623/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2008
From: SKERLJ, MAURIZIO; LOPEZ, PAOLO LENNE
To: QIMONDA AG
Reel/Frame 020394/0988 →