IP Library Granted Patent US 9,229,888
Granted Patent B1
US 9,229,888 · App. 13/562,124 · Granted Jan 5, 2016

Area-efficient dynamically-configurable memory controller

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 9,229,888
App. No.
13/562,124
Granted
Jan 5, 2016
Kind
B1
Abstract

Architecture, systems, and methods for developing, an area-efficient dynamically-configurable memory controller are described. The architecture, systems and methods may provide savings in terms of surface area required for implementing a dynamically configurable hardened memory controller or controllers.

Claims (46)

1. An integrated circuit comprising a dynamically-reconfigurable memory controller block, wherein:

the dynamically-reconfigurable memory controller block is reconfigurable, at run time, between: a first memory controller configured to transmit data at a first data rate and a second memory controller configured to transmit data at a second data rate, the first data rate being different from the second data rate,

the dynamically-reconfigurable memory controller block is reconfigurable in response to dynamic run-time conditions during operation, and

the dynamically-reconfigurable memory controller block includes a first set of memory controller resources to be used by the first memory controller, a second set of memory controller resources to be used by the second memory controller, and a third set of memory controller resources to be shared by the first and second memory controllers, wherein the third set of memory controller resources includes one or more of a command queue, a first first-in-first-out buffer, an error code checker, bank tracker, a command interface and a control interface.

2. The integrated circuit of claim 1 , wherein the set of memory controller resources shared by the first memory controller and the second memory controller is dynamically shared by the first memory controller and the second memory controller at run time.

3. The integrated circuit of claim 1 , wherein the integrated circuit is a programmable logic device.

4. An integrated circuit comprising a dynamically-reconfigurable memory controller block, wherein:

the dynamically-reconfigurable memory controller block is reconfigurable, at run time, between: a first memory controller configured to transmit data using a first data bus width and a second memory controller configured to transmit data using a second data bus width, the first data bus width being different from the second data bus width,

the dynamically-reconfigurable memory controller block is reconfigurable in response to dynamic run-time conditions during operation, and

the dynamically-reconfigurable memory controller block includes a first set of memory controller resources to be used by the first memory controller, a second set of memory controller resources to be used by the second memory controller, and a third set of memory controller resources to be shared by the first and second memory controllers, wherein the third set of memory controller resources includes one or more of a command queue, a first first-in-first-out buffer, an error code checker, bank tracker, a command interface and a control interface.

5. The integrated circuit of claim 4 , wherein the set of memory controller resources shared by the first memory controller and the second memory controller is dynamically shared by the first memory controller and the second memory controller at run time.

6. The integrated circuit of claim 4 , wherein the integrated circuit is a programmable logic device.

7. An integrated circuit comprising a dynamically-reconfigurable memory controller block, wherein:

the dynamically-reconfigurable memory controller block is reconfigurable, at run time, between: a first memory controller, a second memory controller, and the first memory controller simultaneously with the second memory controller;

the first memory controller has a first set of characteristics and the second memory controller has a second set of characteristics, the second set of characteristics being different from the first set of characteristics; and

one or both of the first and second sets of characteristics are determined in response to dynamic run-time conditions during operation, wherein the dynamically-reconfigurable memory controller block includes a first set of memory controller resources to be used by the first memory controller, a second set of memory controller resources to be used by the second memory controller, and a third set of memory controller resources to be shared by the first and second memory controllers, and

the third set of memory controller resources includes one or more of a command queue, a first first-in-first-out buffer, an error code checker, bank tracker, a command interface and a control interface.

8. The integrated circuit of claim 7 , wherein the first and second sets of characteristics include one or both of a data rate and a data bus width.

9. The integrated circuit of claim 8 , wherein the first memory controller and the second memory controller are configurable to operate at different data rates.

10. The integrated circuit of claim 7 , wherein the set of memory controller resources shared by the first memory controller and the second memory controller is dynamically shared by the first memory controller and the second memory controller at run time.

11. The integrated circuit of claim 7 , wherein the integrated circuit is a programmable logic device.

12. A method comprising:

identifying a first set of memory controller resources needed to implement a first memory controller configured to operate at a first data rate;

identifying a second set of memory controller resources needed to implement a second memory controller configured to operate at a second data rate, the first data rate being different from the second data rate;

determining a subset of the memory controller resources in the first and second sets of memory controller resources which can be shared by the first memory controller and the second memory controller during operation;

determining, with a processor, a layout of a memory controller block of an integrated circuit, such that the memory controller block is dynamically reconfigurable, at run time, between: the first memory controller and the second memory controller, wherein:

the memory controller block is reconfigurable in response to dynamic run-time conditions during operation,

the memory controller block includes a first set of memory controller resources to be used by the first memory controller, a second set of memory controller resources to be used by the second memory controller, and a third set of memory controller resources to be shared by the first and second memory controllers, and

the third set of memory controller resources includes one or more of, a command queue, a first first-in-first-out buffer, an error code checker, bank tracker, a command interface and a control interface.

13. A method comprising

identifying a first set of memory controller resources needed to implement a first memory controller configured to operate with a first data bus width;

identifying a second set of memory controller resources needed to implement a second memory controller configured to operate with a second data bus width, the first data bus width being different from the second data bus width;

determining a subset of the memory controller resources in the first and second sets of memory controller resources which can be shared by the first memory controller and the second memory controller during operation;

determining, with a processor, a layout of a memory controller block of an integrated circuit, such that the memory controller block is dynamically reconfigurable, at run time, between: the first memory controller and the second memory controller, wherein:

the memory controller block is reconfigurable in response to dynamic run-time conditions during operation,

the memory controller block includes a first set of memory controller resources to be used by the first memory controller, a second set of memory controller resources to be used by the second memory controller, and a third set of memory controller resources to be shared by the first and second memory controllers, and

the third set of memory controller resources includes one or more of, a command queue, a first first-in-first-out buffer, an error code checker, bank tracker, a command interface and a control interface.

14. A method comprising

identifying a first set of memory controller resources needed to implement a first memory controller configured to operate with a first memory controller characteristic;

identifying a second set of memory controller resources needed to implement a second memory controller configured to operate with a second memory controller characteristic, the first memory controller characteristic being different from the second memory controller characteristic;

determining a subset of the memory controller resources in the first and second sets of memory controller resources which can be shared by the first memory controller and the second memory controller during operation;

determining, with a processor, a layout of a memory controller block of an integrated circuit, such that the memory controller block is dynamically reconfigurable, at run time, between: the first memory controller, the second memory controller, and the first memory controller simultaneously with the second memory controller; wherein:

the memory controller block is reconfigurable in response to dynamic run-time conditions during operation, wherein

the memory controller block includes a first set of memory controller resources to be used by the first memory controller, a second set of memory controller resources to be used by the second memory controller, and a third set of memory controller resources to be shared by the first and second memory controllers; and

the third set of memory controller resources includes one or more of a command queue, a first first-in-first-out buffer, an error code checker, bank tracker, a command interface and a control interface.

15. The method of 14 , wherein the first and second sets of characteristics includes one or both of a data rate and a data bus width.

Assignments (3)
SECURITY INTEREST Recorded Sep 12, 2025
From: ALTERA CORPORATION
To: BARCLAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 073431/0309 →
CORRECTIVE ASSIGNMENT TO CORRECT THE LIST OF NAMED INVENTORS SHOULD BE GORDON RAYMOND CHIU AND JOSHUA DAVID FENDER. ONLY GORDON RAYMOND CHIU IS LISTED. PREVIOUSLY RECORDED ON REEL 029263 FRAME 0432. ASSIGNOR(S) HEREBY CONFIRMS THE THE CORRECT LIST OF INVENTORS ARE GORDON RAYMOND CHIU AND JOSHUA DAVID FENDER.. Recorded Nov 9, 2012
From: CHIU, GORDON RAYMOND; FENDER, JOSHUA DAVID
To: ALTERA CORPORATION
Reel/Frame 029275/0812 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 8, 2012
From: CHIU, GORDON RAYMOND
To: ALTERA CORPORATION
Reel/Frame 029263/0432 →