IP Library Granted Patent US 9,473,426
Granted Patent B2
US 9,473,426 · App. 14/005,520 · Granted Oct 18, 2016

Hybrid routers in multicore architectures

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,473,426
App. No.
14/005,520
Granted
Oct 18, 2016
Kind
B2
Abstract

Technologies are generally described for methods and systems effective to implement hybrid routers in multicore architectures. A first tile may include a processor core, a cache configured to be in communication with the processor core and a router configured to be in communication with the cache. The router may be effective to move data with a packet switching channel or a circuit switching channel. The first tile may include switching logic configured to be in communication with the cache and the router. The switching logic may be effective to receive a routing objective that may relate to energy or delay costs in routing data through the network. The switching logic may select one of the packet switching channel or the circuit switching channel to move the data through the network based on the routing objective.

Claims (124)

1. A multicore processor, comprising:

a first tile;

a second tile configured to be in communication with the first tile through a network within the multicore processor;

wherein the first tile includes:

a processor core configured to receive an instruction to execute a program that includes a routing objective;

a cache configured to be in communication with the processor core;

a router configured to be in communication with the cache, the router effective to move data with a packet switched channel or a circuit switched channel; and

switch logic configured to be in communication with the cache and the router, wherein the switch logic is effective to:

receive the routing objective, wherein the routing objective relates to energy or delay costs to route data associated with the program through the network within the multicore processor; and

prior to movement of data associated with the program, select one of the packet switched channel or the circuit switched channel to move the data associated with the program through the network based on the routing objective.

2. The multicore processor of claim 1 , wherein the switch logic is effective to:

determine a packet switched energy, the packet switched energy being an energy to move data through the network using the packet switched channel;

determine a circuit switched energy, the circuit switched energy being an energy to move data through the network using the circuit switched channel;

determine a packet switched delay, the packet switched delay being a delay to move data through the network using the packet switched channel;

determine a circuit switched delay, the circuit switched delay being a delay to move data through the network using the circuit switched channel; and

select one of the packet switched channel or the circuit switched channel based on the packet switched energy, the circuit switched energy, the packet switched delay, and/or the circuit switched delay.

3. The multicore processor of claim 1 , wherein:

the first tile includes a pre-fetcher configured to be in communication with the cache and the router; and

the switch logic is further configured to determine a fetch size for the pre-fetcher based on the routing objective.

4. The multicore processor of claim 1 , wherein:

the first tile includes a pre-fetcher; and

the switch logic is effective to:

determine a packet switched energy, the packet switched energy being an energy to move data through the network using the packet switched channel;

determine a circuit switched energy, the circuit switched energy being an energy to move data through the network using the packet switched channel;

determine a packet switched delay, the packet switched delay being a delay to move data through the network using the packet switched channel;

determine a circuit switched delay, the circuit switched delay being a delay to move data through the network using the packet switched channel;

select one of the packet switched channel or the circuit switched channel based on the packet switched energy, the circuit switched energy, the packet switched delay, and/or the circuit switched delay; and

determine a fetch size number of blocks for the pre-fetcher based on the routing objective, the packet switched energy, the circuit switched energy, the packet switched delay and the circuit switched delay.

5. The multicore processor of claim 1 , wherein in response to a cache miss by the cache for a particular block, a cache controller is effective to generate a request for the particular block through the selected one of the packet switched channel or the circuit switched channel.

6. The multicore processor of claim 1 , wherein:

the first tile includes a pre-fetcher;

the switch logic is effective to:

determine a packet switched energy, the packet switched energy being an energy to move data through the network using the packet switched channel;

determine a circuit switched energy, the circuit switched energy being an energy to move data through the network using the packet switched channel;

determine a packet switched delay, the packet switched delay being a delay to move data through the network using the packet switched channel;

determine a circuit switched delay, the circuit switched delay being a delay to move data through the network using the packet switched channel;

determine a fetch size number of blocks based on the routing objective, the packet switched energy, the circuit switched energy, the packet switched delay and the circuit switched delay;

determine a success rate to fetch the fetch size number of blocks; and

select one of the packet switched channel or the circuit switched channel based on the packet switched energy, the circuit switched energy, the packet switched delay, the circuit switched delay, and/or the success rate.

7. The multicore processor of claim 1 , wherein

the switch logic is effective to select one of the packet switched channel or the circuit switched channel by:

identification of two or more randomly selected fetch sizes;

identification of a randomly selected channel;

determination of measured delays for the randomly selected channel for the randomly selected fetch sizes;

determination of measured energies for the randomly selected channel for the randomly selected fetch sizes; and

selection of one of the packet switched channel or the circuit switched channel based on the measured delays and energies.

8. A method to select a switched channel in a network of a multicore processor, the method comprising:

receiving an instruction to execute a program in the multicore processor, wherein the program includes a routing objective, the multicore processor includes a first tile and a second tile configured to be in communication with the first tile through the network of the multicore processor, wherein the first tile includes a processor core, a cache configured to be in communication with the processor core, and a router configured to be in communication with the cache, wherein the router is effective to move data with a packet switched channel or a circuit switched channel, and wherein the routing objective relates to energy or delay costs to route data associated with the program through the network of the multicore processor;

receiving, by switch logic in the first tile, the routing objective, the switch logic configured to be in communication with the cache and the router; and

prior to movement of data associated with the program, selecting, by the switch logic, one of the packet switched channel or the circuit switched channel to move the data associated with the program through the network, based on the routing objective.

9. The method of claim 8 , further comprising, by the switch logic:

determining a packet switched energy, the packet switched energy being an energy to move data through the network using the packet switched channel;

determining a circuit switched energy, the circuit switched energy being an energy to move data through the network using the circuit switched channel;

determining a packet switched delay, the packet switched delay being a delay to move data through the network using the packet switched channel; and

determining a circuit switched delay, the circuit switched delay being a delay to move data through the network using the circuit switched channel; and

wherein selecting one of the packet switched channel or the circuit switched channel includes selecting one of the packet switched channel or the circuit switched channel based on the packet switched energy, the circuit switched energy, the packet switched delay, and/or the circuit switched delay.

10. The method of claim 8 , further comprising determining a fetch size for a pre-fetcher based on the routing objective.

11. The method of claim 8 , further comprising, by the switch logic:

determining a packet switched energy, the packet switched energy being an energy to move data through the network using the packet switched channel;

determining a circuit switched energy, the circuit switched energy being an energy to move data through the network using the packet switched channel;

determining a packet switched delay, the packet switched delay being a delay to move data through the network using the packet switched channel;

determining a circuit switched delay, the circuit switched delay being a delay to move data through the network using the packet switched channel;

wherein selecting one of the packet switched channel or the circuit switched channel includes selecting one of the packet switched channel or the circuit switched channel based on the packet switched energy, the circuit switched energy, the packet switched delay, and/or the circuit switched delay; and

determining a fetch size number of blocks for the pre-fetcher based on the routing objective, the packet switched energy, the circuit switched energy, the packet switched delay and the circuit switched delay.

12. The method of claim 8 , further comprising:

detecting a cache miss by the cache for a particular block; and

sending a request by a cache controller for the particular block through the selected one of the packet switched channel or the circuit switched channel.

13. The method of claim 8 , further comprising, by the switch logic:

determining a packet switched energy, the packet switched energy being an energy to move data through the network using the packet switched channel;

determining a circuit switched energy, the circuit switched energy being an energy to move data through the network using the packet switched channel;

determining a packet switched delay, the packet switched delay being a delay to move data through the network using the packet switched channel;

determining a circuit switched delay, the circuit switched delay being a delay to move data through the network using the packet switched channel;

determining a fetch size number of blocks based on the routing objective, the packet switched energy, the circuit switched energy, the packet switched delay and the circuit switched delay; and

determining a success rate to fetch the fetch size number of blocks; and

wherein selecting one of the packet switched channel or the circuit switched channel includes selecting one of the packet switched channel or the circuit switched channel based on the packet switched energy, the circuit switched energy, the packet switched delay, the circuit switched delay, and/or the success rate.

14. The method of claim 8 , wherein selecting by the switch logic comprises:

identifying two or more randomly selected fetch sizes;

identifying a randomly selected channel;

determining measured delays for the randomly selected channel for the randomly selected fetch sizes;

determining measured energies for the randomly selected channel for the randomly selected fetch sizes; and

selecting one of the packet switched channel or the circuit switched channel based on the measured delays and energies.

15. A multicore processor system, comprising:

a first tile; and

a second tile configured to be in communication with the first tile through a network in the multicore processor system;

wherein the first tile includes:

a processor core;

a cache configured to be in communication with the processor core;

a router configured to be in communication with the cache, the router effective to move data with a packet switched channel or a circuit switched channel; and

switch logic configured to be in communication with the cache and the router, wherein the switch logic is effective to:

receive a routing objective that pertains to execution of a program, wherein the routing objective relates to energy or delay costs to route data associated with the program through the network in the multicore processor system; and

prior to movement of data associated with the program, select one of the packet switched channel or the circuit switched channel to move the data associated with the program through the network based on the routing objective.

16. The multicore processor system of claim 15 , wherein the switch logic is effective to:

determine a packet switched energy, the packet switched energy being an energy to move data through the network using the packet switched channel;

determine a circuit switched energy, the circuit switched energy being an energy to move data through the network using the circuit switched channel;

determine a packet switched delay, the packet switched delay being a delay to move data through the network using the packet switched channel; and

determine a circuit switched delay, the circuit switched delay being a delay to move data through the network using the circuit switched channel; and

wherein to select one of the packet switched channel or the circuit switched channel based on the routing objective, the switch logic is effective to select one of the packet switched channel or the circuit switched channel based on the packet switched energy, the circuit switched energy, the packet switched delay, and/or the circuit switched delay.

17. The multicore processor system of claim 15 , wherein:

the first tile includes a pre-fetcher; and

the switch logic is effective to:

determine a packet switched energy, the packet switched energy being an energy to move data through the network using the packet switched channel;

determine a circuit switched energy, the circuit switched energy being an energy to move data through the network using the packet switched channel;

determine a packet switched delay, the packet switched delay being a delay to move data through the network using the packet switched channel;

determine a circuit switched delay, the circuit switched delay being a delay to move data through the network using the packet switched channel;

wherein to select one of the packet switched channel or the circuit switched channel based on the routing objective, the switch logic is effective to select one of the packet switched channel or the circuit switched channel based on the packet switched energy, the circuit switched energy, the packet switched delay, and/or the circuit switched delay; and

determine a fetch size number of blocks for the pre-fetcher based on the routing objective, the packet switched energy, the circuit switched energy, the packet switched delay and the circuit switched delay.

18. The multicore processor system of claim 15 , wherein the switch logic includes a cache controller, and in response to a cache miss by the cache for a particular block, the cache controller is effective to generate a request for the particular block through the selected one of the packet switched channel or the circuit switched channel.

19. The multicore processor system of claim 15 , wherein:

the first tile includes a pre-fetcher;

the switch logic is effective to:

determine a packet switched energy, the packet switched energy being an energy to move data through the network using the packet switched channel;

determine a circuit switched energy, the circuit switched energy being an energy to move data through the network using the packet switched channel;

determine a packet switched delay, the packet switched delay being a delay to move data through the network using the packet switched channel;

determine a circuit switched delay, the circuit switched delay being a delay to move data through the network using the packet switched channel;

determine a fetch size number of blocks based on the routing objective, the packet switched energy, the circuit switched energy, the packet switched delay and the circuit switched delay; and

determine a success rate to fetch the fetch size number of blocks; and

wherein to select one of the packet switched channel or the circuit switched channel based on the routing objective, the switch logic is effective to select one of the packet switched channel or the circuit switched channel based on the packet switched energy, the circuit switched energy, the packet switched delay, the circuit switched delay, and/or the success rate.

20. The multicore processor system of claim 15 , wherein

the switch logic is effective to select one of the packet switched channel or the circuit switched channel by:

identification of two or more randomly selected fetch sizes;

identification of a randomly selected channel;

determination of measured delays for the randomly selected channel for the randomly selected fetch sizes;

determination of measured energies for the randomly selected channel for the randomly selected fetch sizes; and

selection of one of the packet switched channel or the circuit switched channel based on the measured delays and energies.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 3, 2020
From: EMPIRE TECHNOLOGY DEVELOPMENT, LLC
To: MERCURY KINGDOM ASSETS LIMITED
Reel/Frame 053378/0053 →
RELEASE OF SECURITY INTEREST Recorded Jun 26, 2020
From: CRESTLINE DIRECT FINANCE, L.P.
To: EMPIRE TECHNOLOGY DEVELOPMENT LLC
Reel/Frame 053047/0864 →
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →