IP Library Granted Patent US 7,584,320
Granted Patent B2
US 7,584,320 · App. 11/861,114 · Granted Sep 1, 2009

Sliced crossbar architecture with no inter-slice communication

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,584,320
App. No.
11/861,114
Granted
Sep 1, 2009
Kind
B2
Abstract

A memory crossbar adapted to transmit a memory transaction to a network resource. The memory crossbar includes a plurality of input ports. Each of the plurality of input ports includes a TAGS generator and a queue adapted to receive a first portion of a first memory transaction and a first portion of a second memory transaction. Each of the plurality of inputs ports also includes an arbiter coupled to the queue and adapted to independently select either the first portion of the first memory transaction or the first portion of the second memory transaction based on a priority associated with the first portion of the first memory transaction and the first portion of the second memory transaction and a multiplexer coupled to the arbiter.

Claims (62)

1. A method of processing memory transactions between a plurality of processors and a plurality of shared memories, wherein a plurality of interconnected crossbar switches in a multi-stage crossbar network provides a communications path between the plurality of processors and plurality of shared memories, the method comprising:

receiving a plurality of memory transactions at a crossbar switch, each memory transaction having been divided into a plurality of associated portions, each portion comprising an address corresponding to a target resource, wherein each crossbar switch comprises a plurality of slices for processing the plurality of associated portions of a received memory transaction in parallel;

assigning a priority to each received portion in each slice, wherein each slice independently assigns the same priority to each associated portion of a given memory transaction; and

forwarding each of the plurality of portions to its corresponding target resource based on the address and the assigned priority, wherein each slice independently forwards each associated portion of a given memory transaction at substantially the same time.

2. The method of claim 1 wherein the target resource is an adjacent crossbar switch.

3. The method of claim 1 wherein the target resource is one of the plurality of shared memory banks.

4. The method of claim 1 wherein the target resource is one of the plurality of processors.

5. The method of claim 1 wherein assigning a priority to each received portion in each slice comprises assigning a priority based on a time of arrival.

6. The method of claim 1 wherein assigning a priority to each received portion in each slice comprises assigning a priority based on an order of arrival.

7. The method of claim 1 wherein the plurality of interconnected crossbar switches in a multi-stage crossbar network comprises:

a plurality of first-stage crossbar switches, wherein each first stage crossbar is connected to one or more processors of the plurality of processors;

a plurality of second-stage crossbar switches;

a plurality of third-stage crossbar switches, wherein each third-stage crossbar is connected to one or more memory controllers that each process memory transactions associated with a corresponding shared memory bank;

wherein the plurality of first-stage of crossbar switches provides a communications path between the plurality of processors and the plurality of second-stage crossbar switches;

wherein the plurality of second-stage crossbar switches provides a communications path between the plurality of first-stage crossbar switches and the plurality of third-stage crossbar switches; and

wherein the plurality of third-stage crossbar switches provides a communications path between the plurality of second-stage crossbar switches and the plurality of shared memory banks.

8. An apparatus comprising:

a plurality of interconnected crossbar switches in a multi-stage crossbar network, the network configured to provide a communications path between a plurality of processors and a plurality of shared memories, wherein an individual crossbar switch comprises a plurality of crossbar slices, wherein the individual crossbar switch is configured to receive a plurality of memory transactions, wherein each crossbar slice of the individual crossbar switch is configured to receive a corresponding associated portion of a memory transaction, and wherein each crossbar slice of the individual crossbar switch is configured to independently forward its corresponding associated portion of the received memory transaction to a target resource at substantially the same time.

9. The apparatus of claim 8 wherein the target resource is an adjacent crossbar switch.

10. The apparatus of claim 8 wherein the target resource is one of the plurality of shared memory banks.

11. The apparatus of claim 8 wherein the target resource is one of the plurality of processors.

12. The apparatus of claim 8 , wherein each crossbar slice of the individual crossbar switch is further configured to independently assign the same priority to its corresponding associated portion of the received memory transaction.

13. The apparatus of claim 12 wherein the assigned priority is based on a time of arrival.

14. The apparatus of claim 12 wherein the assigned priority is based on an order of arrival.

15. The apparatus of claim 8 , wherein the multi-stage crossbar network comprises:

a plurality of first-stage crossbar switches, wherein each first stage crossbar is connected to one or more processors of the plurality of processors;

a plurality of second-stage crossbar switches;

a plurality of third-stage crossbar switches, wherein each third-stage crossbar is connected to one or more memory controllers that each process memory transactions associated with a corresponding shared memory bank;

wherein the plurality of first-stage of crossbar switches is configured to provide a communications path between the plurality of processors and the plurality of second-stage crossbar switches;

wherein the plurality of second-stage crossbar switches is configured to provide a communications path between the plurality of first-stage crossbar switches and the plurality of third-stage crossbar switches; and

wherein the plurality of third-stage crossbar switches is configured to provide a communications path between the plurality of second-stage crossbar switches and the plurality of shared memory banks.

16. An apparatus comprising:

a plurality of interconnected switching means in a multi-stage switching network, the network configured to provide a communications path between a plurality of processors and a plurality of shared memories, wherein an individual switching means comprises a plurality of slices, wherein the individual switching means is configured to receive a plurality of memory transactions, wherein each slice of the individual switching means is configured to receive a corresponding associated portion of a memory transaction, and wherein each slice of the individual switching means is configured to independently forward its corresponding associated portion of the received memory transaction to a target resource at substantially the same time.

17. The apparatus of claim 16 wherein the target resource is an adjacent switching means.

18. The apparatus of claim 16 wherein the target resource is one of the plurality of shared memory banks.

19. The apparatus of claim 16 wherein the target resource is one of the plurality of processors.

20. The apparatus of claim 16 , wherein each slice of the individual switching means is further configured to independently assign the same priority to its corresponding associated portion of the received memory transaction.

21. The apparatus of claim 20 wherein the assigned priority is based on a time of arrival.

22. The apparatus claim 20 wherein the assigned priority is based on an order of arrival.

23. The apparatus of claim 16 , wherein the plurality of interconnected switching means comprises:

a plurality of first-stage switching means, wherein each first stage switching means is connected to one or more processors of the plurality of processors;

a plurality of second-stage switching means;

a plurality of third-stage switching means, wherein each third-stage switching means is connected to one or more memory controllers that each process memory transactions associated with a corresponding shared memory bank;

wherein the plurality of first-stage switching means is configured to provide a communications path between the plurality of processors and the plurality of second-stage switching means;

wherein the plurality of second-stage switching means is configured to provide a communications path between the plurality of first-stage switching means and the plurality of third-stage switching means; and

wherein the plurality of third-stage switching means is configured to provide a communications path between the plurality of second-stage switching means and the plurality of shared memory banks.

24. A computer readable media with instructions to cause a microprocessor to perform a method of processing memory transactions between a plurality of processors and a plurality of shared memories, wherein a plurality of interconnected crossbar switches in a multi-stage crossbar network provides a communications path between the plurality of processors and plurality of shared memories, the method comprising:

receiving a plurality of memory transactions at a crossbar switch, each memory transaction having been divided into a plurality of associated portions, each portion comprising an address corresponding to a target resource, wherein each crossbar switch comprises a plurality of slices for processing the plurality of associated portions of a received memory transaction in parallel;

assigning a priority to each received portion in each slice, wherein each slice independently assigns the same priority to each associated portion of a given memory transaction; and

forwarding each of the plurality of portions to its corresponding target resource based on the address and the assigned priority, wherein each slice independently forwards each associated portion of a given memory transaction at substantially the same time.

25. The computer readable media of claim 24 wherein the target resource is an adjacent crossbar switch.

26. The computer readable media of claim 24 wherein the target resource is one of the plurality of shared memory banks.

27. The computer readable media of claim 24 wherein the target resource is one of the plurality of processors.

28. The computer readable media of claim 24 wherein assigning a priority to each received portion in each slice comprises assigning a priority based on a time of arrival.

29. The computer readable media of claim 24 wherein assigning a priority to each received portion in each slice comprises assigning a priority based on an order of arrival.

30. The computer readable media of claim 24 wherein the plurality of interconnected crossbar switches in a multi-stage crossbar network comprises:

a plurality of first-stage crossbar switches, wherein each first stage crossbar is connected to one or more processors of the plurality of processors;

a plurality of second-stage crossbar switches;

a plurality of third-stage crossbar switches, wherein each third-stage crossbar is connected to one or more memory controllers that each process memory transactions associated with a corresponding shared memory bank;

wherein the plurality of first-stage of crossbar switches provides a communications path between the plurality of processors and the plurality of second-stage crossbar switches;

wherein the plurality of second-stage crossbar switches provides a communications path between the plurality of first-stage crossbar switches and the plurality of third-stage crossbar switches; and

wherein the plurality of third-stage crossbar switches provides a communications path between the plurality of second-stage crossbar switches and the plurality of shared memory banks.

Assignments (7)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2023
From: INTELLECTUAL VENTURES ASSETS 191 LLC
To: MIND FUSION, LLC
Reel/Frame 064270/0685 →
SECURITY INTEREST Recorded Mar 24, 2023
From: MIND FUSION, LLC
To: INTELLECTUAL VENTURES ASSETS 191 LLC; INTELLECTUAL VENTURES ASSETS 186 LLC
Reel/Frame 063295/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2023
From: ZARBAÑA DIGITAL FUND LLC
To: INTELLECTUAL VENTURES ASSETS 191 LLC
Reel/Frame 062666/0789 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ADDRESS OF THE RECEIVING PARTY PREVIOUSLY RECORDED AT REEL: 036684 FRAME: 587. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 2, 2015
From: PASTERNAK SOLUTIONS LLC
To: ZARBAÑA DIGITAL FUND LLC
Reel/Frame 036745/0324 →
MERGER Recorded Sep 29, 2015
From: PASTERNAK SOLUTIONS LLC
To: ZARBAÑA DIGITAL FUND LLC
Reel/Frame 036684/0587 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2007
From: PURCELL, STEPHEN CLARK; KIMURA, SCOTT
To: BELIEVE, INC.
Reel/Frame 019905/0852 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 2, 2007
From: BELIEVE, INC.
To: PASTERNAK SOLUTIONS LLC
Reel/Frame 019905/0908 →