IP Library Granted Patent US 8,725,919
Granted Patent B1
US 8,725,919 · App. 13/164,319 · Granted May 13, 2014

Device configuration for multiprocessor systems

Inventors: Julianne J. Zhu (Los Gatos, CA); David T. Hass (Santa Clara, CA)
Assignee: Netlogic Microsystems, Inc.
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 8,725,919
App. No.
13/164,319
Granted
May 13, 2014
Kind
B1
Abstract

Disclosed is an approach for configuring devices for a multiprocessor system, where the devices pertaining to the different processors are viewed as connecting to a standardized common bus. Regardless of the specific processor to which a device is directly connected, that device can be generally identified and accessed along the standardized common bus. PCIe is an example of a suitable standardized bus type that can be employed, where the devices for each processor node are represented as PCIe devices. Therefore, each of the devices would appear to the system software as a PCIe device. A PCIe controller can then be used to access the device by referring to the appropriate device identifier. This permits any device to be accessed on any of the processor nodes, without separate and individualized configurations or drivers for each separate processor node.

Claims (43)

1. A method for configuring devices in a multiprocessor system, comprising:

discovering, by a master processor node of the multiprocessor system, a plurality of devices associated with a plurality of slave processor nodes of the multiprocessor system, wherein the master processor node communicates with each of the plurality of slave processor nodes via an interchip protocol; and

associating each of the plurality of devices with a corresponding device identifier, wherein each of the plurality of devices is accessible via the master processor node using the corresponding device identifier on a common virtual bus that corresponds to a bus protocol, and wherein the bus protocol is different than the interchip protocol.

2. The method of claim 1 , wherein the bus protocol is a PCIe bus protocol.

3. The method of claim 1 , further comprising scanning the plurality of devices to identify functions associated with the plurality of devices.

4. The method of claim 1 , wherein the device identifier comprises a bus number, a device number, and a function number.

5. The method of claim 4 , wherein the bus number corresponds to the common virtual bus, the device number corresponds to a specific slave processor node, and the function number corresponds to a function of a device.

6. The method of claim 1 , wherein the common virtual bus is a virtual PCIe bus.

7. The method of claim 1 , wherein each of the plurality of processor nodes corresponds to a same set of associated devices.

8. The method of claim 1 , wherein at least one slave processor node of the plurality of slave processor nodes corresponds to a communication processor.

9. The method of claim 1 , wherein the device identifier corresponds to an on-chip interrupt address.

10. The method of claim 1 , wherein the plurality of devices comprises I/O devices, memory devices, and/or accelerator devices.

11. The method of claim 1 , wherein the device identifier is pre-assigned prior to discovery of the plurality of devices.

12. A method for accessing devices in a multiprocessor system, comprising:

determining, by a master processor node of the multiprocessor system, a device identifier that corresponds to a device from among a plurality of devices associated with a plurality of slave processor nodes of the multiprocessor system, wherein the master processor node communicates with the plurality of slave processor nodes via an interchip protocol and the plurality of devices are associated with a bus protocol different than the interchip protocol; and

accessing the device using the device identifier, where the device identifier provides access to the device on a common virtual bus that corresponds to the bus protocol.

13. The method of claim 12 , wherein the bus protocol is a PCIe bus protocol.

14. The method of claim 12 , wherein the device identifier comprises a bus number, a device number, and a function number.

15. The method of claim 14 , wherein the bus number corresponds to the common virtual bus, the device number corresponds to a specific slave processor node, and the function number corresponds to a function of a device.

16. The method of claim 12 , wherein the common virtual bus is a virtual PCIe bus.

17. The method of claim 12 , wherein at least one slave processor node of the plurality of slave processor nodes corresponds to a communication processor.

18. The method of claim 12 , wherein the plurality of devices comprises I/O devices, memory devices, and/or accelerator devices.

19. A system for configuring devices for a multiprocessor system, comprising:

a plurality of processor nodes that communicate via an interchip protocol; and

a plurality of devices, each of the plurality of devices associated with a processor node of the plurality of processor nodes and configured to be discoverable as being associated with a bus protocol and to be accessible via a corresponding device identifier on a common virtual bus that corresponds to the bus protocol, wherein the bus protocol is different than the interchip protocol.

20. The system of claim 19 , wherein the bus protocol is a PCIe bus protocol.

21. The system of claim 19 , wherein the device identifier comprises a bus number, a device number, and a function number.

22. The system of claim 21 , wherein the bus number corresponds to the common virtual bus, the device number corresponds to a specific processor node, and the function number corresponds to a function of a device.

23. The system of claim 19 , wherein the common virtual bus is a virtual PCIe bus.

24. The system of claim 19 , wherein each of the plurality of processor nodes corresponds to a same set of associated devices.

25. The system of claim 19 , wherein at least one processor node of the plurality of processor nodes corresponds to a communication processor.

26. The system of claim 19 , wherein the device identifier corresponds to an on-chip interrupt address.

27. The system of claim 19 , wherein the plurality of devices comprises I/O devices, memory devices, and/or accelerator devices.

28. The system of claim 19 , wherein the device identifier is pre-assigned prior to discovery of the plurality of devices.

29. A system for accessing devices in a multiprocessor system, comprising:

a plurality of devices associated with a plurality of processor nodes of the multiprocessor system, in which a respective device identifier corresponds to each of the plurality of devices and in which the plurality of processor nodes communicate via an interchip protocol; and

a common virtual bus relating to a bus protocol that is associated with the plurality of devices, in which the bus protocol is different than the interchip protocol, and in which the plurality of devices is accessible on the common virtual bus using the respective device identifiers.

30. The system of claim 29 , wherein the bus protocol is a PCIe bus protocol.

31. The system of claim 29 , wherein the respective device identifier comprises a bus number, a device number, and a function number.

32. The system of claim 31 , wherein the bus number corresponds to the common virtual bus, the device number corresponds to a specific processor node, and the function number corresponds to a function of a device.

33. The system of claim 29 , wherein the common virtual bus is a PCIe bus.

34. The system of claim 29 , wherein at least one processor node of the plurality of processor nodes corresponds to a communication processor.

35. The system of claim 29 , wherein the plurality of devices comprises I/O devices, memory devices, and/or accelerator device.

Assignments (9)
CORRECTIVE ASSIGNMENT TO CORRECT THE ERROR IN RECORDING THE MERGER IN THE INCORRECT US PATENT NO. 8,876,094 PREVIOUSLY RECORDED ON REEL 047351 FRAME 0384. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 8, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 049248/0558 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE OF THE MERGER PREVIOUSLY RECORDED AT REEL: 047230 FRAME: 0910. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047351/0384 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047230/0910 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
CHANGE OF NAME Recorded Apr 16, 2015
From: NETLOGIC MICROSYSTEMS, INC.
To: NETLOGIC I LLC
Reel/Frame 035443/0824 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 16, 2015
From: NETLOGIC I LLC
To: BROADCOM CORPORATION
Reel/Frame 035443/0763 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 19, 2011
From: ZHU, JULIANNE J.; HASS, DAVID T.
To: NETLOGIC MICROSYSTEMS, INC.
Reel/Frame 026780/0980 →