Neural cluster
According to embodiments of the present disclosure, a neural cluster includes a mesh network for connecting a plurality of blocks, wherein the mesh network includes a plurality of routers each arranged at an intersection formed by a row line and a column line, and a mesh network bus, wherein each of the plurality of routers is connected to one of the plurality of blocks and one or more adjacent routers through the mesh network bus and includes a plurality of ports, and wherein the mesh network bus includes a plurality of channels, wherein the plurality of channels pass through each of the plurality of ports of each of the plurality of routers, and a priority queue is provided for each of the plurality of channels at each of the plurality of ports, and wherein the priority queue includes an index and a queue value corresponding to the index.
1 . A neural cluster, comprising:
a mesh network for connecting a plurality of blocks,
wherein the mesh network includes a plurality of routers each arranged at an intersection formed by a row line and a column line, and a mesh network bus,
wherein each of the plurality of routers is connected to one of the plurality of blocks and one or more adjacent routers through the mesh network bus and includes a plurality of ports,
wherein the mesh network bus includes a plurality of channels,
wherein the plurality of channels pass through each of the plurality of ports of each of the plurality of routers, and a priority queue is provided for each of the plurality of channels at each of the plurality of ports,
wherein the priority queue includes an index and a queue value corresponding to the index, and
wherein the priority queue operates in a weighted round robin method and wherein in the weighted round robin method, if the number of the index of the priority queue is a multiple of a number of one or more source ports different from a destination port to which the priority queue is applied, and port numbers of the source ports are equally added as the queue value corresponding to the index, weights are equally assigned to the source ports.
2 . The neural cluster of claim 1 , wherein a port number of each of the plurality of ports is added as the queue value.
3 . The neural cluster of claim 2 , wherein the plurality of ports include the destination port to which the priority queue is applied and the one or more source ports different from the destination port, and
wherein in the priority queue of the destination port, the port numbers of the source ports are added as the queue value.
4 . The neural cluster of claim 2 , wherein the priority queue operates in a round robin method.
5 . The neural cluster of claim 4 , wherein the round robin method includes the weighted round robin method.
6 . The neural cluster of claim 5 , wherein the priority queue is independently programmable for each of the plurality of channels passing through each of the plurality of ports of each of the plurality of routers, and
wherein, by adjusting the index and the queue value of the priority queue according to a data movement pattern within the neural cluster, the weights are assigned per router, channel, and port related to the data movement pattern.
7 . The neural cluster of claim 6 , wherein in the weighted round robin method, if the number of the index of the priority queue is a multiple of the number of one or more source ports different from the destination port to which the priority queue is applied, and port numbers of the source ports are unequally added as the queue value corresponding to the index, the weights are assigned to the source ports as many times as the port numbers of the source ports are added as the queue value.
8 . The neural cluster of claim 6 , wherein in the weighted round robin method, if the number of the index of the priority queue is not a multiple of the number of one or more source ports different from the destination port to which the priority queue is applied, and port numbers of the source ports are unequally added as the queue value corresponding to the index, the weights are assigned to the source ports as many times as the port numbers of the source ports are added as the queue value.
9 . The neural cluster of claim 1 , wherein in the priority queue,
if a first queue value is served at a first time, at a second time, one or more queue values that were lower in priority than the first queue value at the first time are set to increase by one priority, and the first queue value is set as the lowest priority of the priority queue, and
if a second queue value is served at the second time, at a third time, one or more queue values that were lower in priority than the second queue value at the second time are set to increase by one priority, and the second queue value is set as the lowest priority of the priority queue that is lower in priority than the first queue value.
10 . The neural cluster of claim 1 , wherein the priority queue further includes an enable flag set for each index.
11 . The neural cluster of claim 10 , wherein if the queue value of the index corresponding to the enable flag is to be used, an enable flag signal indicating the enable flag is activated, and
wherein if the queue value of the index corresponding to the enable flag is not to be used, the enable flag signal is deactivated.
12 . A neural cluster, comprising:
a mesh network for connecting a plurality of blocks,
wherein the mesh network includes a plurality of routers each arranged at an intersection formed by a row line and a column line, and a mesh network bus,
wherein each of the plurality of routers is connected to one of the plurality of blocks and one or more adjacent routers through the mesh network bus and includes a plurality of ports,
wherein the mesh network bus includes a plurality of channels,
wherein the plurality of channels pass through each of the plurality of ports of each of the plurality of routers, and a priority queue is provided for each of the plurality of channels at each of the plurality of ports,
wherein the priority queue includes an index and a queue value corresponding to the index, and
wherein the priority queue operates in a weighted round robin method and wherein in the weighted round robin method, if the number of the index of the priority queue is a multiple of the number of one or more source ports different from the destination port to which the priority queue is applied, and port numbers of the source ports are unequally added as the queue value corresponding to the index, weights are assigned to the source ports as many times as the port numbers of the source ports are added as the queue value.
13 . A neural cluster, comprising:
a mesh network for connecting a plurality of blocks,
wherein the mesh network includes a plurality of routers each arranged at an intersection formed by a row line and a column line, and a mesh network bus,
wherein each of the plurality of routers is connected to one of the plurality of blocks and one or more adjacent routers through the mesh network bus and includes a plurality of ports,
wherein the mesh network bus includes a plurality of channels,
wherein the plurality of channels pass through each of the plurality of ports of each of the plurality of routers, and a priority queue is provided for each of the plurality of channels at each of the plurality of ports,
wherein the priority queue includes an index and a queue value corresponding to the index, and
wherein the priority queue operates in a weighted round robin method and wherein in the weighted round robin method, if the number of the index of the priority queue is not a multiple of the number of one or more source ports different from the destination port to which the priority queue is applied, and port numbers of the source ports are unequally added as the queue value corresponding to the index, weights are assigned to the source ports as many times as the port numbers of the source ports are added as the queue value.