Context switching in a network on chip by thread saving and restoring pointers to memory arrays containing valid message data
First Claim
1. A network on chip (NOC) comprising:
- integrated processor (IP) blocks, routers, memory communications controllers, and network interface controllers, each IP block adapted to a router through a memory communications controller and a network interface controller, each memory communications controller controlling communication between an IP block and memory, each network interface controller controlling inter-IP block communications through routers, each IP block further adapted to a network by a low latency, high bandwidth application messaging interconnect comprising an inbox and an outbox, one or more of the IP blocks further comprising computer processors supporting a plurality of threads of execution, the NOC further comprising;
an inbox controller configured to set pointers to identify a portion of a memory array of the inbox that contains valid message data for a current thread of execution running on a particular processor;
an outbox controller configured to set pointers to identify a portion of a memory array of the outbox that contains valid message data for the current thread of execution running on a particular processor; and
software running in the current thread of execution that, upon a context switch from the current thread of execution to a new thread of execution, is configured to;
save values corresponding to the pointers for the current thread of execution, andreset the values corresponding to the pointers to identify valid message data for the new thread,the inbox controller and the outbox controller further configured to retain the valid message data for the current thread in the inbox and the outbox until context switches again to the current thread.
1 Assignment
0 Petitions
Accused Products
Abstract
A network on chip (‘NOC’) that includes IP blocks, routers, memory communications controllers, and network interface controllers, each IP block adapted to the network by an application messaging interconnect including an inbox and an outbox, one or more of the IP blocks including computer processors supporting a plurality of threads, the NOC also including an inbox and outbox controller configured to set pointers to the inbox and outbox, respectively, that identify valid message data for a current thread; and software running in the current thread that, upon a context switch to a new thread, is configured to: save the pointer values for the current thread, and reset the pointer values to identify valid message data for the new thread, where the inbox and outbox controller are further configured to retain the valid message data for the current thread in the boxes until context switches again to the current thread.
-
Citations
18 Claims
-
1. A network on chip (NOC) comprising:
-
integrated processor (IP) blocks, routers, memory communications controllers, and network interface controllers, each IP block adapted to a router through a memory communications controller and a network interface controller, each memory communications controller controlling communication between an IP block and memory, each network interface controller controlling inter-IP block communications through routers, each IP block further adapted to a network by a low latency, high bandwidth application messaging interconnect comprising an inbox and an outbox, one or more of the IP blocks further comprising computer processors supporting a plurality of threads of execution, the NOC further comprising; an inbox controller configured to set pointers to identify a portion of a memory array of the inbox that contains valid message data for a current thread of execution running on a particular processor; an outbox controller configured to set pointers to identify a portion of a memory array of the outbox that contains valid message data for the current thread of execution running on a particular processor; and software running in the current thread of execution that, upon a context switch from the current thread of execution to a new thread of execution, is configured to; save values corresponding to the pointers for the current thread of execution, and reset the values corresponding to the pointers to identify valid message data for the new thread, the inbox controller and the outbox controller further configured to retain the valid message data for the current thread in the inbox and the outbox until context switches again to the current thread. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A method of data processing on a network on chip (NOC), the NOC comprising:
- integrated processor (IP) blocks, routers, memory communications controllers, and network interface controllers, each IP block adapted to a router through a memory communications controller and a network interface controller, each memory communications controller controlling communication between an IP block and memory, each network interface controller controlling inter-IP block communications through routers, each IP block further adapted to a network by a low latency, high bandwidth application messaging interconnect comprising an inbox and an outbox, one or more IP block further comprising a processor supporting a plurality of threads of execution, the NOC further comprising an inbox controller configured to set pointers to identify a portion of a memory array of the inbox that contains valid message data for a current thread of execution running on a particular processor and an outbox controller configured to set pointers to identify a portion of a memory array of the outbox that contains valid message data for the current thread of execution running on the particular processor, the method comprising;
upon a context switch from the current thread of execution to a new thread of execution; saving, by software running in the current thread of execution, values corresponding to the pointers for the current thread of execution; resetting, by the software running in the current thread of execution, the values corresponding to the pointers to identify valid message data for the new thread; and retaining, by the inbox controller and the outbox controller, the valid message data for the current thread in the inbox and the outbox until context switches again to the current thread. - View Dependent Claims (8, 9, 10, 11, 12)
- integrated processor (IP) blocks, routers, memory communications controllers, and network interface controllers, each IP block adapted to a router through a memory communications controller and a network interface controller, each memory communications controller controlling communication between an IP block and memory, each network interface controller controlling inter-IP block communications through routers, each IP block further adapted to a network by a low latency, high bandwidth application messaging interconnect comprising an inbox and an outbox, one or more IP block further comprising a processor supporting a plurality of threads of execution, the NOC further comprising an inbox controller configured to set pointers to identify a portion of a memory array of the inbox that contains valid message data for a current thread of execution running on a particular processor and an outbox controller configured to set pointers to identify a portion of a memory array of the outbox that contains valid message data for the current thread of execution running on the particular processor, the method comprising;
-
13. A computer program product for data processing on a network on chip (NOC), the NOC comprising:
- integrated processor (IP) blocks, routers, memory communications controllers, and network interface controllers, each IP block adapted to a router through a memory communications controller and a network interface controller, each memory communications controller controlling communication between an IP block and memory, each network interface controller controlling inter-IP block communications through routers, each IP block further adapted to a network by a low latency, high bandwidth application messaging interconnect comprising an inbox and an outbox, one or more IP block further comprising a processor supporting a plurality of threads of execution, the NOC further comprising an inbox controller configured to set pointers to identify a portion of a memory array of the inbox that contains valid message data for a current thread of execution running on a particular processor and an outbox controller configured to set pointers to identify a portion of a memory array of the outbox that contains valid message data for the current thread of execution running on a particular processor, the computer program product disposed in a computer readable medium, wherein the computer readable medium is not a signal, the computer program product comprising computer program instructions capable of;
saving, by software running in the current thread of execution, values corresponding to the pointers for the current thread of execution; resetting, by the software running in the current thread of execution, values corresponding to the pointers to identify valid message data for the new thread; and retaining, by the inbox controller and the outbox controller, the valid message data for the current thread in the inbox and the outbox until context switches again to the current thread. - View Dependent Claims (14, 15, 16, 17, 18)
- integrated processor (IP) blocks, routers, memory communications controllers, and network interface controllers, each IP block adapted to a router through a memory communications controller and a network interface controller, each memory communications controller controlling communication between an IP block and memory, each network interface controller controlling inter-IP block communications through routers, each IP block further adapted to a network by a low latency, high bandwidth application messaging interconnect comprising an inbox and an outbox, one or more IP block further comprising a processor supporting a plurality of threads of execution, the NOC further comprising an inbox controller configured to set pointers to identify a portion of a memory array of the inbox that contains valid message data for a current thread of execution running on a particular processor and an outbox controller configured to set pointers to identify a portion of a memory array of the outbox that contains valid message data for the current thread of execution running on a particular processor, the computer program product disposed in a computer readable medium, wherein the computer readable medium is not a signal, the computer program product comprising computer program instructions capable of;
Specification