EP1520233B1

Processing system with interspersed processors and communication elements

Abstract

This record has no abstract on file.

EP1520233B1, drawing sheet 1
Sheet 1 of 17

Term

Term ended

Expired 25 June 2023, 3.2 years ago.

  1. Priority
  2. Filed
  3. Granted
  4. Expired
  5. Today

19 claims: 17 independent, 2 dependent

  1. 1
    A system, comprising:a plurality of processors (300), each comprising at least one arithmetic logic unit (320), an instruction processing unit (310), and a plurality of processor ports (301 - 303);characterized in that the system further comprises a plurality of dynamically configurable communication elements (400), each comprising a plurality of communication ports (401 - 405), a first memory (425), and a routing engine (435);wherein said plurality of processors (300) and said plurality of dynamically configurable communication elements (400) are coupled together in an interspersed arrangement;wherein, for each of said processors (300), said plurality of processor ports (301 - 303) are configured for coupling to a first subset of said plurality of dynamically configurable communication elements (400);wherein, for each of said dynamically configurable communication elements (400), said plurality of communication ports (401 - 405) comprise a first subset of communication ports (401 - 403) configured for coupling to a subset of said plurality of said processors (300) and a second subset of communication ports (404 - 405) configured for coupling to a second subset of said plurality of dynamically configurable communication elements (400);wherein for at least one of said dynamically configurable communication elements (400), said first memory (425) includes a plurality of addressable locations and is configured to concurrently provide a plurality of values stored in said plurality of addressable locations to two or more of said processors (300), thereby serving as a shared register file for each of the processors (300) coupled to said at least one dynamically configurable communication element (400).
  2. 4
    The system as recited in any of the preceding claims, wherein said plurality of processors (300) and said plurality of dynamically configurable communication elements (400) are interspersed in a substantially homogeneous fashion.
  3. 5
    The system as recited in any of the preceding claims, wherein for at least one of said dynamically configurable communication elements (400), said first memory (425) is configured to provide operand storage accessible by two or more of said processors (300).
  4. 6
    The system as recited in any of the preceding claims, wherein for each of said dynamically configurable communication elements (400), said first memory (425) is shared among a plurality of said processors (300).
  5. 7
    The system as recited in any of the preceding claims, wherein for each of said dynamically configurable communication elements (400), said first memory (425) is shared among a plurality of neighboring processors (300).
  6. 8
    The system as recited in any of the preceding claims, wherein for each of said dynamically configurable communication elements (400), said first memory (425) is shared among four neighboring processors (300).
  7. 9
    The system as recited in any of the preceding claims, wherein for each of said dynamically configurable communication elements (400), said first memory (425) operates as at least a portion of a register file for its neighboring processors (300).
  8. 10
    The system as recited in any of the preceding claims, wherein each of said processors (300) is dynamically configurable to obtain data from the first memory (425) of different ones of said dynamically configurable communication elements (400).
  9. 11
    The system as recited in any of the preceding claims, wherein for each of said dynamically configurable communication elements (400), said first memory (425) stores data that is directly accessible by a processor (300) during execution of instructions.
  10. 12
    The system as recited in any of the preceding claims, wherein for each of said dynamically configurable communication elements (400), said first memory (425) stores data that is directly accessible by each of a plurality of neighboring processors (300) during execution of instructions.
  11. 13
    The system as recited in any of the preceding claims, wherein each of the processors (300) is operable to obtain data from a first memory (425) of any of a plurality of neighboring dynamically configurable communication elements (400).
  12. 14
    The system as recited in any of the preceding claims, wherein a first processor (300) is operable to obtain first data from a first memory (425) of a first dynamically configurable communication element during a first time period, and wherein the first processor (300) is operable to obtain second data from a first memory (425) of a second dynamically configurable communication element during a second time period.
  13. 15
    The system as recited in any of the preceding claims, wherein a first processor (300) is operable to obtain a plurality of data values from a respective subset of said plurality of dynamically configurable communication elements (400) concurrently.
  14. 16
    The system as recited in any of the preceding claims, wherein, for each of said dynamically configurable communication elements (400), said first memory (425) is configured to provide a plurality of data values to a respective subset of said plurality of processors (300) concurrently.
  15. 17
    The system as recited in any of the preceding claims, wherein, for each of said dynamically configurable communication elements (400), the first memory (425) is coupled to said plurality of communication ports (401 - 405) via a plurality of access ports and includes a plurality of addressable locations;and wherein, for each of said dynamically configurable communication elements (400), said routing engine (435) is coupled to said plurality of communication ports (401 - 405) and configured to route data between any of said plurality of communication ports (401, 402, 404, 405).
  16. 18
    The system as recited in any of the preceding claims, wherein each of said plurality of dynamically configurable communication elements (400) further comprises a direct memory access engine (430) coupled to said plurality of communication ports (401 - 405) and configured to transfer data between the first memory and said plurality of communication ports (401, 402, 404, 405).
  17. 19
    The system as recited in any of the preceding claims, wherein, for each of said processors (300), said instruction processing unit (310) is coupled to control said at least one arithmetic logic unit (320);wherein each of said processors (300) further comprises at least a second memory (312) including a plurality of addressable locations, wherein said second memory (312) is coupled to said at least one instruction processing unit (310);and wherein, for each of said processors (300), said plurality of processor ports (301 - 303) comprise a first subset of processor ports coupled to said at least one arithmetic logic unit (320) and a second subset of processor ports coupled to said instruction processing unit (310).