# US 2017/0286196 A1 · Processing System With Interspersed Processors With Multi-Layer Interconnection

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2017/0286196 A1
- Document ID: US20170286196A1
- Status: Published application
- Kind: A1
- Application number: 15/631,925
- Filed: 2017-06-23
- Published: 2017-10-05
- Earliest claimed: 2012-11-21
- Assignees: Coherent Logix, Incorporated
- Applicants: Coherent Logix, Incorporated
- Inventors: Carl S. Dobbs; Michael R. Trocino; Michael B. Solka
- Web page: https://patentgrep.com/patent/US20170286196A1

## CPC

- G06F 9/546: {Message passing systems or structures, e.g. queues}
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 9/44505: {Configuring for program initiating, e.g. using registry, configuration files}
- G06F 11/3419: {by assessing time}
- G06F 13/1673: {using buffers}
- G06F 13/28: using burst mode transfer, e.g. direct memory access {DMA}, cycle steal (G06F13/32 takes precedence)
- G06F 13/4022: {using switching circuits, e.g. switching matrix, connection or expansion network (G06F13/4009 takes precedence)}
- G06F 13/4027: {using bus bridges (G06F13/4022 takes precedence)}
- G06F 13/4282: {on a serial bus, e.g. I2C bus, SPI bus (on daisy chain buses G06F13/4247)}
- G06F 15/76: Architectures of general purpose stored program computers (with program plugboard G06F15/08; multicomputers G06F15/16)
- G06F 15/8038: {Associative processors}
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

Embodiments of a multi-processor array are disclosed that may include a plurality of processors and configurable communication elements coupled together in a interspersed arrangement. Each configurable communication element may include a local memory and a plurality of routing engines. The local memory may be coupled to a subset of the plurality of processors. Each routing engine may be configured to receive one or more messages from a plurality of sources, assign each received message to a given destination of a plurality of destinations dependent upon configuration information, and forward each message to assigned destination. The plurality of destinations may include the local memory, and routing engines included in a subset of the plurality of configurable communication elements.

## Claims

### Claim 1

An apparatus, comprising:
a plurality of processors;
a plurality of configurable communication elements coupled to the plurality of processors in an interspersed arrangement;
wherein a particular configurable communication element of the plurality of configurable communication elements is coupled to a first subset of the plurality of processors, and to a second subset of the plurality of processors different from the first subset; and
wherein the particular configurable communication element is configured to receive one or more messages from a particular processor included in the first or second subset of the plurality of processors, and forward the one or more messages to another configurable communication element of the plurality of configurable communication elements using configuration information; and
wherein one or more configurable communication elements of the plurality of configurable communication elements are interspersed between the another configurable communication element and the particular configurable communication element.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the one or more messages includes a request for access to a particular resource, and wherein the particular configurable communication element of the plurality of configurable communication elements is further configured to arbitrate between multiple requests for access to the particular resource.

### Claim 3 (depends on 1)

The apparatus of claim 1, wherein the particular configurable communication element is further configured to forward the one or more messages to the another configurable communication element based upon an amount of message traffic to the another configurable communication element.

### Claim 4 (depends on 1)

The apparatus of claim 1, wherein the particular configurable communication element of the plurality of configurable communication elements is further configured to receive the configuration information via a serial bus.

### Claim 5 (depends on 1)

The apparatus of claim 1, wherein the particular configurable communication element of the plurality of configurable communication elements includes a register configured to store at least a portion of the configuration information.

### Claim 6 (depends on 1)

The apparatus of claim 1, wherein the particular configurable communication element is further configured to forward a particular message of the one or more messages to the another configurable communication element based upon header information included the particular message.

### Claim 7

A method of operating a multiprocessors system, comprising:
designating a first subset of a plurality of processors for receiving a first plurality of messages from a particular configurable communication element of a plurality of configurable communication elements, wherein the plurality of configurable communication elements is coupled to the plurality of processors in an interspersed arrangement;
designating a second subset of the plurality of processors for receiving a second plurality of messages from the particular configurable communication element, wherein the second subset is different than the first subset;
receiving, by the particular configurable communication element, a message from a particular processor included in the first or second subset of the plurality of processors; and
forwarding the message to another configurable communication element of the plurality of configurable communication elements using configuration information; and
wherein one or more configurable communication elements of the plurality of configurable communication elements are interspersed between the another configurable communication element and the particular configurable communication element.

### Claim 8 (depends on 7)

The method of claim 7, further comprising forwarding the message to the another configurable communication element based upon an amount of message traffic to the another configurable communication element.

### Claim 9 (depends on 8)

The method of claim 8, further comprising, monitoring the amount of message traffic by the particular configurable communication element.

### Claim 10 (depends on 7)

The method of claim 7, further comprising receiving, by the particular configurable communication element, the configuration information via a serial bus.

### Claim 11 (depends on 7)

The method of claim 7, storing at least a portion of the configuration information in a register included in the particular configurable communication element.

### Claim 12 (depends on 7)

The method of claim 7, further comprising forwarding the message to the another configurable communication element based upon header information include in the message.

### Claim 13 (depends on 7)

The method of claim 7, further comprising deactivating a channel from the particular configurable communication element to the another configurable communication element in response to determining the message has been transmitted.

### Claim 14 (depends on 13)

The method of claim 13, wherein deactivating the channel includes detecting a particular code included in the message.

### Claim 15

A system, comprising:
a plurality of processors,
a plurality of memories interspersed among the plurality of processors, wherein each memory is coupled to a subset of the plurality of processors; and
a plurality of routing engines, wherein each routing engine of the plurality of routing engines is coupled to a respective one of the plurality of memories, a first subset of a plurality of links, and a second subset of the plurality of links;
wherein each link of the first subset of the plurality of links is coupled to a respective one of a first subset of the plurality of routing engines;
wherein each link of the second subset of the plurality of links is coupled to a respective one of a second subset of the plurality of routing engines;
wherein a particular routing engine included of the plurality of routing engines is coupled to first subset of the plurality of processors, and to a second subset of the plurality of processors different from the first subset, and wherein a particular processor included in the second subset of the plurality of processor is not physically adjacent to the particular routing engine; and
wherein the particular routing engine is configured to:
receive one or more messages from a particular processor included in the first or second subset of the plurality of processors; and
forward the one or more messages to another routing engine of the plurality of routing engines using configuration information,
wherein one or more routing engines of the plurality of routing engines are interspersed between the another routing engine and the particular routing engine.

### Claim 16 (depends on 15)

The system of claim 15, wherein the one or more messages includes a request for access to a particular resource, and wherein the particular routing engine of the plurality of routing engines is further configured to arbitrate between multiple requests for access to the particular resource.

### Claim 17 (depends on 15)

The system of claim 15, wherein particular routing engine is further configured to forward the one or more messages to the another routing engine based upon an amount of message traffic to the another routing engine.

### Claim 18 (depends on 15)

The system of claim 15, wherein the particular routing engine of the plurality of routing engines is further configured to receive the configuration information via a serial bus.

### Claim 19 (depends on 15)

The system of claim 15, wherein the particular routing engine of the plurality of routing engines includes a register configured to store at least a portion of the configuration information.

### Claim 20 (depends on 15)

The system of claim 15, wherein the particular routing engine is further configured to forward a particular message of the one or more messages to the another routing engine based upon header information included the particular message.
