DATA TRANSMISSION METHOD AND ELECTRONIC CHIP OF THE MANYCORE TYPE
20230075900 · 2023-03-09
Assignee
Inventors
- Louis-Théophile THIRION (Paris, FR)
- Sangeerthman SUBRAMANIAM (Paris, FR)
- Nicolas MAITROT (Paris, FR)
- Jean-Charles RIAND (Paris, FR)
Cpc classification
G06F11/2043
PHYSICS
G06F15/7825
PHYSICS
International classification
Abstract
A method for transmitting data between functions implemented on a first electronic chip of the manycore type. The first electronic chip includes a plurality of execution cores, the execution cores being grouped in clusters, the clusters being interconnected by at least two communication systems. The data transmission method includes the steps of: implementing a first function on a first cluster; implementing a second function on a second cluster, characterised in that the second function is also implemented on a third cluster distinct from the first and second clusters; and transmitting at least one data item between the first function and the second function.
Claims
1-10. (canceled)
11. A method for transmitting data between functions implemented on a first electronic chip of the manycore type comprising a plurality of execution cores, said execution cores being grouped in a cluster, said clusters being interconnected by at least one first communication system and a second communication system different from said first communication system, wherein said method causes the first electronic chip to perform: implementing a first function on a first cluster; implementing a second function on a second cluster, characterised in that said second function is also implemented on a third cluster distinct from said first and second clusters; and transmitting at least one data item between said first function and said second function, implemented on the second cluster and said second function implemented on the third cluster both through said first communication system and through said second communication system.
12. The method according to claim 11, wherein transmitting at least one data item between said first function and said second function comprises transmitting a data item between said first function and said second function both on a first communication link belonging to the first communication system and on a second communication link belonging to the second communication system.
13. The method according to claim 11, wherein, one of said communication systems having priority, in the case of a plurality of receptions of said data item by said second function implemented on said second cluster only the data item received through said priority communication system is kept and in the case of a plurality of receptions of said data item by said second function implemented on said third cluster only the data item received through said priority communication system is kept.
14. The method according to claim 11, wherein said first communication system is of the network on a chip type.
15. The method according to claim 11, wherein said second communication system is a parallel bus.
16. The method according to claim 11, wherein, said first electronic chip being interconnected to a second electronic chip of the manycore type distinct from said first electronic chip, said first function is furthermore implemented on a first cluster of said second electronic chip and said second function is furthermore implemented on a second cluster of said second electronic chip.
17. The method according to claim 16, wherein said first function implemented on one of said first or second chips transmits at least one data item to said second function implemented on the other of said first or second chips both on a first communication link of the network on a chip type and on a second communication link of the parallel bus type.
18. The method according to claim 11, wherein, said first electronic chip being interconnected to a third electronic chip of the multicore type, said first function is furthermore implemented on a first core of said third electronic chip and said second function is furthermore implemented on a second core of said third electronic chip.
19. The method according to claim 18, wherein said first function implemented on one of said first or second chips transmits at least one data item to said second function implemented on the other one of said first or second chips both on a first communication link of the Ethernet type (Lc) and on a second communication link of the PCIe type.
20. An electronic chip of the manycore type comprising a plurality of execution cores, said execution cores being grouped in clusters, said clusters being interconnected by at least one first communication system and a second communication system different from said first communication system, comprising: a first cluster on which a first function is implemented; a second cluster on which a second function is implemented; a third cluster on which said second function is implemented, said third cluster being distinct from said first and second clusters; and communication links between said first cluster and said second and third clusters configured for transmitting at least one data item between said first function and said second function implemented on the second cluster and said second function implemented on the third cluster both through said first communication system and through said second communication system.
21. A system comprising a first electronic chip according to claim 20 interconnected to a second electronic chip of the manycore type distinct from said first electronic chip, wherein said first function is furthermore implemented on a first cluster of said second electronic chip and said second function is furthermore implemented on a second cluster of said second electronic chip.
22. A system comprising a first electronic chip according to claim 20 interconnected to a third electronic chip of the multicore type distinct from said first electronic chip, wherein said first function is furthermore implemented on a first core of said third electronic chip and said second function is furthermore implemented on a second core of said third electronic chip.
23. The system according to claim 21, wherein said first communication system is of the network on a chip type.
24. The system according to claim 21, wherein said second communication system is a parallel bus.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0024] The features of the invention mentioned above, as well as others, will emerge more clearly from the reading of the following description of an example embodiment, said description being made in relation to the accompanying drawings, among which:
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
DETAILED DISCLOSURE OF EMBODIMENTS
[0032]
[0033] The manycore component may comprise other well known components not shown on
[0034] NoC is a technique for designing a system for communication between the clusters on the manycore component. A communication system of the NoC type applies the network theories and methods to communications within a component. A communication system of the series bus NoC type has furthermore the advantage of being scalable. It makes it possible to increase the point to point connections between clusters.
[0035] In a particular embodiment, the second communication system S2 does not provide this determinism in routing data. On the other hand, it offers the possibility of exchanges via various interfaces. This second communication system S2 is typically of the parallel bus type (e.g. AXI). In this second communication system, the routing of the data is not guaranteed with controlled latency.
[0036]
[0037] AXI is a protocol affording interconnection of the clusters by means of a parallel bus. This protocol forms part of the AMBA standard (the English acronym for “Advanced Microcontroller Bus Architecture”) developed by the company ARM Limited. The protocol simply establishes the rules for communication between the various modules (e.g. clusters) of a chip.
[0038]
[0039] This chip P is advantageously used for implementing avionic functions that require increased safety. Thus, in an aircraft, several critical functions must exchange data. The data in question are for example flight parameters such as the altitude of the aircraft, its speed, etc. On
[0040] According to a particular embodiment, the function B is also implemented on a third cluster C2 distinct from the first and second clusters C4 and C0. The function B implemented on the cluster C2 is called the “redundant” function and is denoted B′. It is indeed the same function as the function B implemented on the cluster C0.
[0041] In the event of failure of the cluster C0, the function B implemented on C0 is stopped. By means of the “redundant” function B′, correct operation of the avionic system is maintained. This is because the function A can continue to exchange data with the function B′ implemented on the cluster C2. The data are for example exchanged by passing from the cluster C4 to the cluster C3 and from the cluster C3 to the cluster C2. The exchanges of data between C4 and C2 via C3 can take place through a communication system internal to the chip, e.g. of the NoC type.
[0042] Thus, implementing the function B on two distinct clusters C0 and C2 appreciably improves the reliability of the avionic system. According to a variant embodiment, the function B is implemented on more than two distinct clusters in order to increase the redundancy and therefore the reliability.
[0043] However, in the embodiment in
[0044]
[0045] According to a particular embodiment, the same data are exchanged on two different communication systems, e.g. on a first system of the NoC type and a second system of the parallel bus type. On
[0046] For example, when the function A implemented on C4 sends data to the function B′ implemented on C2, it sends them via the link L0 and L1 belonging to the first communication system and also via the links L2 and L3 belonging to the second communication system.
[0047] Thus, in the event of failure of the first communication system, e.g. of the NoC type, the data exchanges continue via the second communication system, e.g. parallel bus of the AXI type.
[0048] According to another example, in the event of failure of the link L2 between the cluster C3 and cluster C4 of the second communication system, the data exchanges can continue on the other link L0 belonging to the first communication system.
[0049] In the case where no failure occurs, the function B′ may where applicable receive the same data twice, i.e. once for each communication system. Consequently, it may be decided that the function B′ uses only the data received first and therefore ignores the same data received second. According to a variant, priority may be given to one communication system compared with the other. Thus, if the priority is given to the first communication system and the function B′ receives data coming from the function A via these two communication system, they use the data coming from the first communication system and ignore the data coming from the second communication system.
[0050] According to a variant embodiment, the data between two clusters are exchanged by means of more than two different communication systems in order to increase the redundancy and therefore the reliability.
[0051] The communication systems of the NoC and parallel bus type are given by way of simple illustrative examples. Other communication systems operating according to other communication protocols and allowing the exchange of data between clusters can be used in place of or in addition to the communication systems of the NoC and parallel bus type.
[0052]
[0053] Each component P1 and P2 comprises a plurality of clusters, C0 to C4. Each cluster comprises a plurality of cores or computing units. Each core communicates with the other cores of the cluster through a shared memory. The clusters C0 to C4 are interconnected together by at least two communication systems S1 and S2, e.g. of the NoC and parallel bus type.
[0054] Associating a plurality of manycore components makes it possible to avoid common failure modes. Thus, in the event of failure of the component P1, the functions A and B are provided by the component P2.
[0055] In another example of operation, the function A implemented on the component P1 can exchange data with the function B or B′ located on the same component P1 according to the embodiments described with reference to
[0056] According to a variant embodiment (not shown on
[0057]
[0058] The component P1 comprises a plurality of clusters, C0 to C4. Each cluster comprises a plurality of cores or computing units. Each core communicates with the other cores of the cluster through a shared memory. The clusters C0 to C4 are interconnected with each other by at least two communication systems S1 and S2, e.g. of the NoC and parallel bus type.
[0059] The component P3 is a multicore component, e.g. quadricore as illustrated on
[0060] In another example of operation, the function A implemented on the component P1 can exchange data with the function B or B′ located on the same component P1 according to the embodiments described with reference to
[0061] Other technologies can be used for exchanging data between the two chips, such as GPIO (the English acronym for “General Purpose Input/Output”), USB (the English acronym for “Universal Serial Bus”), or CAN (the English acronym for “Controller Area Network”).
[0062] In this embodiment, the components exchange the data by means of the links Lc and Ld of at least two communication systems.
[0063] In another embodiment, the first manycore component P1 is connected both to a manycore component P2 and to a multicore component P3 by means of at least two communication systems in order to increase the redundancy of function and also the redundancy of the communication links.
[0064]
[0065] In a step S100, a first function is implemented on a first cluster of a manycore electronic component, said first function exchanging data with a second function.
[0066] In a step S110, the second function is implemented on a second cluster distinct from the first cluster.
[0067] In a step S112, the second function is also implemented on a third cluster distinct from said first and second clusters.
[0068] In a step S114, at least one data item is transmitted between said first function and said second function. According to a particular embodiment, said data item is transmitted twice, both on a first communication link belonging to a first communication system and on a second communication link belonging to a second communication system different from said first communication system.
[0069] The variant embodiments described with reference to