IP Library Granted Patent US 11,151,067
Granted Patent B2
US 11,151,067 · App. 15/289,937 · Granted Oct 19, 2021

Multi-controller multi-memory device for parallel data reading and writing

Inventor: Ning Luo (Fuzhou, CN)
Assignee: FUZHOU ROCKCHIP ELECTRONICS CO., LTD.
G06F13/1694G06F13/18
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,151,067
App. No.
15/289,937
Granted
Oct 19, 2021
Kind
B2
Abstract

A multi-controller multi-memory device is disclosed. The device may include a plurality of controllers and a plurality memory units (m-units). Each controller is connected with a dedicated request-distribution unit (dist-unit) and a dedicated read-selection unit (read-unit). Each m-unit is connected with a dedicated arbitration unit (abt-unit). A controller's dedicated dist-unit is coupled with each of the abt-units dedicated to the plurality of m-units. The controller is configured to transmit a data-request to the controller's dedicated dist-unit, the data-request addressing an m-unit. The controller's dedicated dist-unit is configured to transmit the data-request to an abt-unit dedicated to the m-unit. The abt-unit is configured to select the data-request for transmitting to the m-unit based on an arbitration process.

Claims (71)

1. A multi-controller multi-memory device, comprising:

a uni-directional request-submission channel including a plurality of request-distribution units (dist-units);

a uni-directional response-transmission channel including a plurality of read-selection units (read-units);

a plurality of controllers each of which is connected with a dedicated request-distribution unit (dist-unit) in the uni-directional request-submission channel, and a dedicated read-selection unit (read-unit) in the uni-directional response-transmission channel; and

a plurality memory units (m-units) coupled with the plurality of controllers, wherein the plurality of controllers utilize the dist-units to uni-directionally distribute, via the uni-directional request-submission channel, data-requests to the plurality of m-units and utilize the read-units to uni-directionally receive, via the uni-directional response-transmission channel, from the plurality of m-units data-responses that are generated in response to the data-requests, and each of the plurality of m-units is connected with a dedicated arbitration unit (abt-unit),

wherein for a first controller selected from the plurality of controllers,

the first controller's dedicated dist-unit is coupled with each of the abt-units dedicated to the plurality of m-units,

the first controller is configured to transmit a first data-request to the first controller's dedicated dist-unit, the first data-request addressing a first m-unit selected from the plurality of m-units,

the first controller's dedicated dist-unit is configured to transmit the first data-request to a first abt-unit selected from the abt-units and dedicated to the first m-unit, and

the first abt-unit is configured to select the first data-request for transmitting to the first m-unit based on an arbitration process.

2. The multi-controller multi-memory device as recited in claim 1 , wherein

the first controller is configured to transmit a second data-request to the first controller's dedicated dist-unit, the second data-request addressing a second m-unit selected from the plurality of m-units,

after the transmitting of the first data-request to the first abt-unit, the first controller's dedicated dist-unit is configured to transmit the second data-request to a second abt-unit selected from the abt-units and dedicated to the second m-unit, and

the first controller's dedicated dist-unit is configured to transmit the first data-request using a first dedicated wiring connecting with the first abt-unit, and transmit the second data-request using a second dedicated wiring connecting with the second abt-unit.

3. The multi-controller multi-memory device as recited in claim 1 , wherein the first controller's dedicated dist-unit is configured to transmit the first data-request to the first abt-unit by

extracting a m-unit address from the first data-request, wherein the m-unit address identifies the first m-unit; and

selecting the first abt-unit from the abt-units based on the m-unit address.

4. The multi-controller multi-memory device as recited in claim 1 , wherein for a second controller selected from the plurality of controllers,

the second controller's dedicated dist-unit is coupled with each of the abt-units dedicated to the plurality of m-units,

the second controller is configured to transmit a second data-request to the second controller's dedicated dist-unit, the second data-request addressing the first m-unit,

concurrent to the first controller's dedicated dist-unit transmitting the first data-request to the first abt-unit, the second controller's dedicated dist-unit is configured to transmit the second data-request to the first abt-unit, and

the first abt-unit is configured to not select the second data-request for transmitting to the first m-unit based on the arbitration process.

5. The multi-controller multi-memory device as recited in claim 4 , wherein the arbitration process's selecting the first data-request and not selecting the second data-request is based on a priority-ranking of the first data-request and the second data-request.

6. The multi-controller multi-memory device as recited in claim 5 , wherein the priority-ranking is a time-priority ranking, a fixed-priority ranking, a rotating-priority ranking, or a weighted-priority ranking.

7. The multi-controller multi-memory device as recited in claim 1 , wherein

the first m-unit is coupled with each of the read-units dedicated to the plurality of controllers,

the first m-unit is configured to generate a first data-response in response to the first data-request, the first data-response including a controller address of the first controller,

the first m-unit is configured to concurrently transmit the first data-response to each of the read-units, and

a first read-unit selected from the read-units and dedicated to the first controller is configured to accept the first data-response and transmit the first data-response to the first controller based on a selection process.

8. The multi-controller multi-memory device as recited in claim 7 , wherein

a second read-unit selected from the read-units and dedicated to a second controller selected from the plurality of controllers is configured to reject the first data-response based on the selection process.

9. The multi-controller multi-memory device as recited in claim 7 , wherein the selection process evaluates the controller address in the first data-response with the first controller's address to determine the acceptance of the first data-response, and evaluates the controller address in the first data-response with the second controller's address to determine the rejection of the first data-response.

10. A method for providing parallel data reading and writing by a multi-controller multi-memory device, the method comprising:

coupling a plurality of controllers with a plurality of memory units (m-units), wherein each of the plurality of controllers is connected with a dedicated request-distribution unit (dist-unit) in a uni-directional request-submission channel and a dedicated read-selection unit (read-unit) in a uni-directional response-transmission channel, the plurality of controllers utilize the dist-units to uni-directionally distribute, via the uni-directional request-submission channel, data-requests to the plurality of m-units and utilize the read-units to uni-directionally receive, via the uni-directional response-transmission channel, from the plurality of m-units data-responses that are generated in response to the data-requests, and each of the plurality of m-units is connected with a dedicated arbitration unit (abt-unit);

transmitting, by a first controller selected from the plurality of controllers, a first data-request to the first controller's dedicated dist-unit, wherein the first data-request addresses a first m-unit selected from the plurality of m-units, and the first controller's dedicated dist-unit is coupled with each of the abt-units dedicated to the plurality of m-units;

transmitting, by the first controller's dedicated dist-unit, the first data-request to a first abt-unit selected from the abt-units and dedicated to the first m-unit; and

selecting, by the first abt-unit, the first data-request for transmitting to the first m-unit based on an arbitration process.

11. The method as recited in claim 10 , further comprising:

transmitting, by a second controller selected from the plurality of controllers, a second data-request to the second controller's dedicated dist-unit, wherein the second data-request addresses the first m-unit, and the second controller's dedicated dist-unit is coupled with each of the abt-units;

concurrent to the transmitting of the first data-request to the first abt-unit, transmitting, by the second controller's dedicated dist-unit, the second data-request to the first abt-unit; and

not-selecting, by the first abt-unit, the second data-request for transmitting to the first m-unit based on the arbitration process.

12. The method as recited in claim 11 , wherein the arbitration process's selecting the first data-request and not selecting the second data-request is based on a priority-ranking of the first data-request and the second data-request.

13. The method as recited in claim 10 , wherein the data-request is a write-data-request containing write-data, and the method further comprising:

storing, by the first m-unit, the write-data extracted from the data-request into its own storage.

14. The method as recited in claim 10 , further comprising:

generating, by the first m-unit, a first data-response in response to the first data-request, wherein the first m-unit is coupled with each of the read-units dedicated to the plurality of controllers, and the first data-response includes a first controller address of the first controller;

concurrently transmitting, by the first m-unit, the first data-response to each of the read-units; and

accepting, by a first read-unit selected from the read-units and dedicated to the first controller, the first data-response based on the first controller address in the first data-response.

15. The method as recited in claim 14 , further comprising:

rejecting, by a second read-unit selected from the read-units and dedicated to a second controller selected from the plurality of controllers, the first data-response based on the first controller address in the first data-response.

16. The method as recited in claim 14 , further comprising:

receiving, by the first read-unit, a second data-response from a second m-unit selected from the plurality of m-units, wherein the second data-response includes a second controller address of a second controller selected from the plurality of controllers; and

rejecting, by the first read-unit, the second data-response based on the second controller address in the second data-response.

17. The method as recited in claim 14 , wherein the data-request is a read-data-request, and the method further comprising:

retrieving, by the first m-unit, read-data from its own storage based on the read-data-request;

storing, by the first m-unit, the read-data into the data-response;

transmitting, by the first read-unit, the first data-response to the first controller; and

extracting, by the first controller, the read-data from the data-response.

18. A method for providing parallel data reading and writing by a multi-controller multi-memory device, the method comprising:

coupling a plurality of controllers with a plurality of memory units (m-units) via a uni-directional request-submission channel and a uni-directional response-transmission channel, wherein the plurality of controllers utilize the request-submission channel to uni-directionally distribute data-requests to the plurality of m-units and utilize the response-transmission channel to uni-directionally receive from the plurality of m-units data-responses that are generated in response to the data-requests;

transmitting, by the plurality of controllers, a plurality of data-requests via the request-submission channel, wherein the plurality of data-requests are intended for a first m-unit selected from the plurality of m-units, and the request-submission channel is configured to orderly deliver the plurality of data-requests to the first m-unit based on an arbitration process; and

transmitting, by the first m-unit, a data response generated based on one of the plurality of data-requests via the response-transmission channel, wherein the data response is intended for a first controller selected from the plurality of controllers, and the response-transmission channel is configured to reject the transmitting of the data-response to those of the plurality of controllers that are not the first controller.

19. The method as recited in claim 18 , wherein

the request-submission channel includes a plurality of request-distribution units (dist-units) each of which is dedicated to a corresponding one of the plurality of controllers, and includes a plurality of arbitration units (abt-units) each of which is dedicated to a corresponding one of the plurality of m-units,

each of the plurality of dist-units is connected with all of the plurality of abt-units via a set of dedicated wirings,

the plurality of dist-units are configured to concurrently transmit the plurality of data-requests to a first abt-unit selected from the plurality of abt-units and dedicated to the first m-unit, and

the first abt-unit is configured to process the plurality of data-requests based on the arbitration process.

20. The method as recited in claim 18 , wherein

the response-transmission channel includes a plurality of read-selection units (read-units) each of which is dedicated to a corresponding one of the plurality of controllers,

each of the plurality of m-units is configured to concurrently transmit the data-response to each of the plurality of read-units, and

a read-unit selected from the plurality of read-units and dedicated to the first controller is configured to accept the transmitting of the data response, and any one of the plurality of read-units that is not dedicated to the first controller is configured to reject the transmitting of the data-response.

Assignments (1)
CHANGE OF NAME Recorded Feb 22, 2022
From: FUZHOU ROCKCHIP ELECTRONICS CO., LTD.
To: ROCKCHIP ELECTRONICS CO., LTD.
Reel/Frame 059060/0050 →
Priority Claims (1)
CN 201510644606.3 · Oct 8, 2015 · national
Continuity (1)
Related Publication 20170103030A1 · Apr 13, 2017