Transaction Routing for System-on-Chip

By designing a dynamic access port selection algorithm in the system on chip, the routing efficiency and congestion problems caused by the number of source devices exceeding the number of access ports is solved, and more efficient transaction routing and system performance is achieved.

CN110727635BActive Publication Date: 2025-04-15STMICROELECTRONICS (ROUSSET) SAS
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN201910640023.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2018-07-17
Filing Date
2019-07-16
Publication Date
2025-04-15
Estimated Expiration
2039-07-16

AI Technical Summary

Technical Problem

In a system on chip, the number of source devices is greater than the number of access ports, resulting in inefficient transaction routing and prone to access blockage and routing congestion.

Method used

A system on chip is designed, in which the interconnection circuit includes an input interface and an output interface, and the transaction routing is realized through the control module to dynamically select a qualified access port according to the memory fill level of the access port and the priority of the source device.

Benefits of technology

By optimizing the use of access ports, the risk of congestion in transaction routing is reduced and the efficiency and reliability of the system is improved.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN110727635B_ABST
    Figure CN110727635B_ABST
Patent Text Reader

Abstract

Embodiments of the present disclosure relate to transaction routing for a system on chip. A system on chip includes an interconnect circuit, the interconnect circuit including at least p input interfaces and at least k output interfaces, p source devices respectively coupled to the p input interfaces, and k access ports respectively coupled to the k output interfaces and belonging to a target including one or more target devices. Each source device is configured to deliver a transaction to a target via one of the access ports. The associated memory of each access port is configured to temporarily store transactions received by the access port. The target is configured to deliver a fill signal for each access port, the fill signal indicating a current fill level of the associated memory of the access port. The control circuit is configured to receive the fill signal from the access port and select an access port that is eligible to receive the transaction depending on the current fill level.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS

[0002] This application claims priority from French patent application No. 1856583, filed on July 17, 2018, which is incorporated herein by reference. Technical Field

[0003] Implementation modes and embodiments of the present invention relate to routing of transactions within a System on Chip (SoC). Background Art

[0004] A system on a chip (SoC) is an integrated circuit that integrates all the components of a computer or other electronic system. These components typically include a central processing unit (CPU), memory, input / output ports, and secondary storage, all integrated on a single substrate.

[0005] Transactions are routed between source devices and access ports belonging to a circuit such as a multi-port memory.Sometimes, the number of access ports is less than the number of source devices.

[0006] An access port generally comprises a memory (for example a stack of the “first input first output” or FIFO type) intended to temporarily store transactions received by the access port. Summary of the invention

[0007] Implementation modes and embodiments of the present invention relate to routing of transactions between a source device and access ports belonging to at least one target device (e.g., but not limited to, a multi-port memory) within a system on a chip (SoC), the number of access ports being less than the number of source devices.

[0008] Embodiments of the present invention can manage such routing to better utilize the memory of the access port. Embodiments can also avoid access blocking and routing congestion as much as possible, especially when some source devices are prioritized over other source devices.

[0009] According to one aspect, a system on chip is provided, the system on chip comprising an interconnect circuit (also known by the name "interconnect" to those skilled in the art), the interconnect circuit comprising at least p input interfaces and at least k output interfaces, where p is greater than k. The p source devices are respectively coupled to the p input interfaces, and the k access ports are respectively coupled to the k output interfaces and belong to at least one target device (e.g., a multi-port memory), or even to multiple target devices. Each source device is configured to deliver a transaction (e.g., a read or write transaction) to at least one target device via one of the access ports.

[0010] Transactions issued by different source devices can be issued sequentially or simultaneously.

[0011] When multiple target devices are provided, all of them may receive transactions from all of the source devices, or some of the target devices may receive transactions from only some of the source devices.

[0012] Each access port includes a memory (eg, a stack of the “first in, first out” (FIFO) type) configured to temporarily store transactions received by the access port.

[0013] The at least one target device (eg, an access port controller of the target device) is configured to deliver a fill signal for each access port, the fill signal indicating a current fill level of a memory of the access port.

[0014] The system also includes a control module configured to receive a current fill signal from a memory of an access port and select an access port eligible to receive a transaction depending on a current fill level of the memory associated with the access port.

[0015] Therefore, the memory of the access port can be better utilized and the risk of congestion (bottleneck) conditions is reduced.

[0016] According to one embodiment, the control module selects an access port if the current fill level of its associated memory is below a lower threshold and no longer considers the access port eligible once the current fill level exceeds an upper threshold.

[0017] Feedback signals on the port status (fill level of the memory) therefore make it possible to use a hysteresis method to build up a list of eligible ports.

[0018] An access port joins the list of eligible ports as soon as the fill level of its associated memory falls below a lower threshold and leaves the list only when the fill level exceeds an upper threshold.

[0019] The updating frequency of the fill level of the access port can be modulated and may be adjusted depending on the application.

[0020] In this case, it is advantageous if at least one target device is configured to update the value of the current fill level of the memory associated with each access port after each input transaction into the memory or each output transaction from the memory.

[0021] According to one mode of realisation, the control module is configured to assign a port eligible for access to a source device depending at least on a current filling level of its memory.

[0022] When each source device is assigned an indication representing its degree of priority, the control module is configured to assign eligible access ports to the source devices depending on the current fill level of their memory and the degree of priority.

[0023] In other words, in this case, the control module implements an access port assignment algorithm that provides a dynamic time change of routing depending not only on the filling of the access ports but also on the priority degree of the source device.

[0024] Therefore, the risk of congestion in transaction routing is further reduced.

[0025] Several access port assignment algorithms can be used to achieve this dynamic change of routing.

[0026] Therefore, according to a non-limiting example of assigning an indication representing the priority level of each source device, the control module is configured to: sequentially assign access ports acquired in increasing order of their current fill levels to the source devices acquired in descending order of priority until the available qualified access ports are exhausted, and then sequentially assign the already assigned access ports acquired in increasing order of their current fill levels to the remaining source devices acquired in descending order of priority.

[0027] Thus, for example, in a list of source devices, the priority level or order is decreasing (a source device ranked 1 in the list has a higher priority than a source device ranked 2, etc.).

[0028] In contrast, in the list of ports eligible for access, the order of fill levels of the ports increases (the memory (internal FIFO) of a port at rank 1 in the list contains fewer elements than the memory of a port at rank 2, etc.).

[0029] In addition, for example, source devices are assigned (by increasing rank) to ports (the highest priority source device is assigned to the eligible port whose internal memory has the most space), while obeying the bijective relationship until the available ports may be exhausted. The remaining source devices are then assigned to the ports already in use by decreasing the rank.

[0030] The benefit of this assignment algorithm, which again accesses the list of ports but runs in the reverse direction once a qualified port has been assigned to a priority source device, is to avoid using a port (the first port in the list) that is already in use by the highest priority source device (the first source device in the list of source devices).

[0031] In other words, such exemplary assignment algorithms are well suited for managing congestion situations by giving priority to priority source devices (once the bijective assignment has been completed, the running of the list of access ports is reversed, starting with the last used access port).

[0032] In this case, as described above, the exemplary algorithm is non-limiting and may, for example, prioritize the most favorable access ports (that is, those whose memories have the lowest fill levels) at this point by looping the algorithm back to the beginning of the list of access ports.

[0033] Moreover, the control module can advantageously be configured to deliver a control word to the interconnect circuit in the presence of each transaction from a source device, the control word specifying an access port assigned to the source device, and the interconnect circuit is then configured to route the transaction from the corresponding input interface to the output interface coupled to the access port and deliver the transaction to the specified access port.

[0034] Thus, the interconnect circuitry is configured to receive a control word along with each transaction and to route the transaction to one of the access ports depending on the value of the control word.

[0035] Furthermore, regardless of the access port selected for a transaction from a source device, the content of the transaction delivered to the access port is the same as the content of the transaction delivered by the source device.

[0036] In other words, if, for example, the target device is a multi-port memory, and if the transaction includes a write address in the memory, the control word should not modify the transaction so that the content of the transaction is the same regardless of the access port of the memory, so that the transaction can point to the same address in the memory space of the memory, regardless of whether the transaction is received on one of the access ports or on another access port.

[0037] In other words, the control word is interpreted locally in the interconnect circuitry to define the destination output interface (destination access port), but is not transmitted to the destination port, so that the transaction points to the same address in the storage space of the memory, regardless of whether the transaction is received on one of the access ports or the other.

[0038] According to one implementation mode, a particularly simple way to ensure that the content of each transaction delivered to an access port is the same as the content of the corresponding transaction delivered by the source device, regardless of the selected access port, is to route each transaction together with a control word to the corresponding output interface, and the output interface is configured not to deliver the control word to the corresponding access port.

[0039] According to one embodiment, each transaction is incorporated into a main word of n bits, while the control word includes m additional bits.

[0040] The value of m is at least equal to 1 and depends on the number of access ports to be selected.

[0041] Therefore, if the number of access ports is equal to 2, then m may be equal to 1. If the number of access ports is equal to 3 or 4, then m will be equal to 2.

[0042] The value of the m bits allows the access port assigned to the source device to be specified.

[0043] Then, each input interface is configured to receive an overall word of n+m bits, which includes a main word of n bits and a control word of m bits.

[0044] The interconnect circuitry is then advantageously configured to route the full word to the corresponding output interface, and the output interface is advantageously configured not to deliver the m-bit control word to the access port.

[0045] According to one embodiment, each input interface is coupled to a corresponding source device via an input bus having n tracks and is coupled to the control module via a control bus having m tracks.

[0046] Full words of n+m bits are intended to be routed on an internal bus network having n+m tracks within the interconnect circuitry.

[0047] Each output interface is configured to receive an internal bus of n+m bits and is coupled to a corresponding access port via an output bus having n tracks, and m tracks of the internal bus having n+m tracks terminating at the corresponding output interface are not connected to the access port.

[0048] When at least one of the target devices is a multi-port memory, the transaction includes an address of a physical storage space of the memory. BRIEF DESCRIPTION OF THE DRAWINGS

[0049] Other advantages and features of the invention will become apparent from the detailed description of purely non-limiting examples and the accompanying drawings, in which:

[0050] Figures 1 to 3 Implementation modes and embodiments of the present invention are schematically illustrated. DETAILED DESCRIPTION

[0051] exist Figure 1 , reference numeral 1 denotes a system on chip, which includes a plurality of source devices ES1-ESp which may be of different kinds.

[0052] Thus, one of the devices (e.g. device ES1) may be an LCD screen controller, another device (e.g. device ES2) may be a processor for processing signals, another source device may be, for example, a decoder, and another source device (e.g. device ESp) may include a programmable core or a (micro)processor.

[0053] The system on chip 1 further comprises at least one target device EC1 , for example a multi-port memory, in this case a memory comprising k access ports PA1 to PAk.

[0054] Of course, several target devices of the same or different kinds may be provided.

[0055] Each access port PAr (r=1 to k) comprises a memory, for example a FIFO memory FFr, and the target device EC1 comprises an access controller which is configured to deliver a signal SGr before effectively delivering to the target device EC1 (in this case, to the storage space of the target device), the signal SGr indicating the current fill level of the memory, in other words, the number of transactions present in the memory at the current time.

[0056] In order to interconnect the source devices ESi with the access ports PA1 -PAk, the system on chip 1 further comprises an interconnection circuit ICN.

[0057] The interconnection circuit comprises input interfaces IE1-IEp, which are respectively coupled to source devices ES1-ESp; and output interfaces IS1-ISk, which are respectively coupled to access ports PA1-PAk.

[0058] Such interconnect circuitry is capable of routing transactions T1-Tp between various source devices and target device(s).

[0059] A transaction may be, for example, a write transaction to a memory (if the corresponding target device is a memory), or a read transaction.

[0060] The structure of such interconnects, typically multi-layer interconnects, and the protocols that allow transactions to be switched and routed within the interconnects are well known to those skilled in the art.

[0061] Those skilled in the art may refer to the article entitled 'A Framework on AMBAbus based Communication Architecture to improve the Real Time Computing Performance in MPSoC', International Journal of Computer Applications (0975-8887), Volume 91-no.5, April 2014, by Venkateswara Rao et al., or to a general introduction to these interconnection circuits given by A. Gerstlauer in 2015 and available at the website http: / / users.ece.utexas.edu~gerstl / ee382v_f14 / lectures / lecture_12.pdf.

[0062] Furthermore, by way of indication but not limitation, an interconnect circuit such as that sold by ARM under the reference NIC-400 (version R0p3) may be used.

[0063] like Figure 1 As shown, each input interface IEi (i=1 to p) of the interconnection circuit ICN is connected to a corresponding source device ESi via an n-bit bus BSi.

[0064] The bus is, for example, a 32-bit bus.

[0065] Each transaction from a source device ESi is incorporated into a word of n bits called 'main word' transmitted on bus BSi.

[0066] As is known in the art, a transaction (eg, a write transaction) specifically includes an address field and control bits as well as a data field to be written.

[0067] For example, the address included in the transaction may be encoded in 16 bits.

[0068] Furthermore, the system on chip 1 comprises a control module DPS associated with the various source devices ES1 -ESp, configured to receive fill level signals SGr (r=1 to k) and to develop for each source device ESi a control word MCi specifying for each transaction the corresponding access port.

[0069] The access port assignment algorithm implemented in the control module DPS will be explored in more detail below.

[0070] Control words MCi are delivered on control buses BC1-BCp.

[0071] Thus, each input interface is coupled to a bus of n+m bits.

[0072] In the example described herein, the n-bit buses BSi pass through the module DPS. However, they cannot physically pass through the module DPS, of course.

[0073] The size of m for each bus BCi depends on the number of access ports.

[0074] If there are two access ports for device EC1, the value of m is 1.

[0075] The control word will be transmitted on the corresponding bus BCi together with the main word containing the n bits of the transaction.

[0076] The n-bit main word and the m-bit control word form an m+n-bit full word.

[0077] Generally speaking, various full words of m+n bits are transmitted to various output interfaces IS1-ISk via a network of internal buses BSGi of n+m tracks.

[0078] Therefore, each output interface is configured to receive an internal bus of n+m bits.

[0079] On the contrary, Figure 1 As shown, only n tracks of these internal buses intended to contain transactions are connected to the access ports PA1-PAk in order to form the output buses BSS1-BSSk.

[0080] In other words, the m tracks that carry the m-bit control word are not connected to the corresponding access ports.

[0081] Therefore, regardless of the selected access port, the transactions delivered to the access port are identical to the transactions from the source device.

[0082] Depending on the value of the control word developed by the control module DPS, a transaction coming from the corresponding source device will be routed to one of the access ports PAr.

[0083] Indeed, in practice, the m control bits are, for example, the m most significant bits of the address word contained in the transaction.

[0084] Thus, if the address word included in the transaction is a 16-bit word, then the address word transmitted over the network of the internal bus of the interconnect circuit is an m+16-bit word. Thus, the interconnect circuit interprets the m+16-bit word as an m+16-bit address. Furthermore, the interconnect circuit is then configured to route the m+16-bit word to the output interface specified by the value of the m most significant bits.

[0085] The interconnect circuit is configured in a conventional manner (eg, in VHDL language). The VHDL language is then converted into a hardware circuit, which includes control circuits, switches, and buses, and the various paths of the hardware circuit are defined by the configuration of the interconnect circuit.

[0086] The control module DPS can also be configured in VHDL language, which is then converted into a hardware circuit.

[0087] More specifically, refer to Figure 2 and Figure 3 , in order to describe an example of an algorithm for assigning access ports to various source devices ES1-ESp.

[0088] In order to avoid congestion in transaction routing, the assignment algorithm will take into account the signals SG1 -SGk representing the fill levels of the internal memories FF1 -FFk of the various access ports PA1 -PAk.

[0089] These signals SGr (r=1 to k) are determined by the access port controller of the target device EC1, for example as a function of the positions of address pointers pointing to the various memory portions FFr.

[0090] First, the control module DPS will determine from among the various access ports PAr those access ports that are eligible to receive transactions.

[0091] In this regard, although a single threshold value may be defined for the fill level of the internal buffer memory below which an access port will be considered eligible to receive transactions and above which the same access port will not be considered eligible to receive transactions, however, Figure 2 As shown, it is preferable to introduce a hysteresis effect in order to avoid undesired transitions between eligible or unqualified states of an access port.

[0092] More precisely, a lower threshold value THB and an upper threshold value THH are defined for the fill level.

[0093] For example, the upper threshold THH is selected to be as close as possible to the choke point while, for example, reserving some storage space for at least one transaction.

[0094] For the purpose of producing a hysteresis effect and avoiding instability, the lower threshold THB is selected to be smaller than THH.

[0095] As an indication but not limitation, the lower threshold THB may be about 50% of the maximum capacity of the memory, and the upper threshold THH may be about 80% of the maximum capacity. Thus, for a memory capable of storing 8 transactions, THH may be, for example, taken to be equal to 6 or 7, and THB equal to 4.

[0096] In addition, if Figure 2As shown, if the filling level of the internal memory is below a lower threshold THB, the access port is considered eligible to temporarily receive transactions in its internal memory.

[0097] Instead, the state of the access port is assigned as 'not eligible' only when the filling level of the internal memory exceeds the upper threshold THH.

[0098] The access controller advantageously updates the value of the signal SGr at each transaction entering or leaving the memory.

[0099] Now more specifically refer to Figure 3 , in order to illustrate an example of an algorithm for assigning access ports to source devices.

[0100] One goal of the assignment algorithm is to avoid assigning two source devices to the same access port whenever possible, and to target the highest priority source device first.

[0101] Thus, for each application, the user can define a first list LST1 of source devices sorted in descending order of priority with respect to the ranking of the source devices in the list (step 30 ).

[0102] In other words, in the example described herein, the priority of the source device ES1 of level 1 is higher than the priority of the source device ES2 of level 2, and so on, the source device of level p has the lowest priority.

[0103] The sequencing may be performed by the source device ESp, which is a microprocessor.

[0104] In parallel, the control module DPS sorts the access ports (step 31 ) so as to build a second list LST2 in which the access ports are sorted in increasing order of fill level with respect to their rank.

[0105] In other words, in the example described herein, in the list LST2 of all access ports PA1-PAk considered eligible, the access port PA1 of rank 1 is the one with the lowest fill level, and the access port PAk of ​​rank k is the one with the highest fill level.

[0106] The filling level of the access port PA2 with rank 2 is higher than the filling level of the access port PA1 with rank 1.

[0107] In other words, the buffer memory of access port PA1 contains fewer elements (fewer transactions) than the memory of access port PA2, and is therefore more likely to receive one or more other source devices.

[0108] Furthermore, in a step 33 , the control module DPS assigns source devices ESi to access ports PAr by increasing the rank while respecting the bijective relationship until the available ports are exhausted.

[0109] In other words, the source device with the highest priority is assigned to the eligible port with the most space.

[0110] Thus, in the examples described herein, access port PA1 is assigned to source device ES1, while access port PA2 is assigned to source device ES2, and PAk is assigned to source device ESk.

[0111] The remaining source devices are then assigned to the access ports that are already in use, but by downgrading.

[0112] Therefore, use of an access port (the first access port in list LST2) that has been assigned to the highest priority source device (the first source device in list LST1) is avoided.

[0113] Therefore, in the example described herein (where k is considered to be less than p and p is less than or equal to 2k), the access port of rank k will again be assigned to the source device ESk+1.

[0114] The access port of rank k-1 will be assigned to source device ESk+2, and so on, until the access port of rank 2k-p+1 is assigned to source device ESp of rank p.

Claims

1. A system on chip, comprising: An interconnect circuit comprising at least p input interfaces and at least k output interfaces, wherein p is greater than k; P source devices are respectively coupled to the p input interfaces; k access ports, respectively coupled to the k output interfaces and belonging to a target including one or more target devices, wherein each access port includes an associated memory; as well as Control circuit; wherein each source device is configured to deliver transactions to the target via one of the access ports; wherein said associated memory of each access port is configured to temporarily store said transactions received by said access port; wherein the target is configured to deliver a fill signal for each access port, the fill signal representing a current fill level of an associated memory of the access port; and Wherein the control circuit is configured to receive the fill signal from the access port and select the access port eligible to receive a transaction depending on the current fill level.

2. A system on chip according to claim 1, wherein the control circuit is configured to: select the access port as eligible when the current fill level of the memory associated with the access port is below a lower threshold, and wherein when the current fill level exceeds an upper threshold, the access port is no longer considered eligible.

3. The system on chip of claim 1, wherein the target is configured to update the current fill level of the memory associated with each access port after each transaction is input to the memory or each transaction is output from the memory. 4 . The system on chip of claim 1 , wherein the control circuit is configured to assign the eligible access port to the source device depending at least on the current fill level of the associated memory.

5. The system on chip of claim 1 , wherein each source device is assigned an indication representing a priority level, and wherein the control circuit is configured to assign the eligible access port to the source device depending on the current fill level of the associated memory and the priority level.

6. The system on chip according to claim 5, wherein the control circuit is configured to sequentially assign the access ports acquired in increasing order of current fill levels to the source devices acquired in decreasing order of priority until all available eligible access ports are exhausted. 7 . The system on chip according to claim 6 , wherein the control circuit is further configured to sequentially assign the already assigned access ports acquired in descending order of fill levels to the remaining source devices acquired in descending order of priority levels, respectively.

8. The system on chip of claim 1 , wherein the control circuit is configured to deliver a control word to the interconnect circuit in the presence of each transaction from a source device, the control word specifying the access port assigned to the source device, the interconnect circuit being configured to: route the transaction from the corresponding input interface to the output interface coupled to the access port, and deliver the transaction to the designated access port.

9. The system on chip of claim 8, wherein the content of each transaction delivered to an access port of a target device is identical to the content of a corresponding transaction delivered by the source device, regardless of the selected access port of the target device.

10. The system on chip of claim 8, wherein each transaction is routed to the corresponding output interface together with the control word, and the output interface is configured not to deliver the control word to the corresponding access port.

11. The system on chip according to claim 10, wherein each transaction is incorporated in a main word of n bits, and the control word comprises m bits, m being at least equal to 1 and depending on the number of access ports to be selected, and the value of the m bits enables the specification of the access port assigned to the source device; wherein each input interface is configured to receive a full word of n+m bits, the full word comprising the main word and the control word; wherein the interconnect circuit is configured to route the fullword to the corresponding output interface; as well as Wherein the output interface is configured not to deliver the control word to the access port.

12. The system on chip of claim 11, wherein each input interface is coupled to a corresponding source device via an input bus having n tracks, and is coupled to the control circuit via a control bus having m tracks; wherein said fullword of n+m bits is intended to be routed over a network of internal buses having n+m tracks within said interconnect circuitry; as well as Each output interface is configured to receive an internal bus of n+m bits and is coupled to the corresponding access port via an output bus having n tracks, wherein the m tracks of the internal bus having n+m tracks terminating at the corresponding output interface are not connected to the access port.

13. The system on chip of claim 1, wherein the target comprises a multi-port memory, and the transaction comprises an address of a physical memory space of the multi-port memory.

14. A method of operating a system on chip, the system on chip comprising a plurality of source devices and a plurality of access ports belonging to one or more target devices, wherein each access port comprises an associated memory, the method comprising: initiating a first transaction to deliver first information from a first one of the source devices to a first one of the access ports; temporarily storing the first information in the associated memory of the first of the access ports; determining a current fill level of the associated memory of the first of the access ports; as well as Based on the current fill level, it is determined whether the first of the access ports is eligible to receive a second transaction.

15. The method of claim 14, wherein determining whether the first of the access ports is eligible to receive the second transaction comprises: determining, when the current fill level is below a lower threshold, that a first access port among the access ports is eligible to receive the second transaction; as well as When the current fill level exceeds an upper threshold, it is determined that a first access port among the access ports is not eligible to receive the second transaction.

16. The method of claim 14, wherein determining whether the first of the access ports is eligible to receive a second transaction comprises: determining that the first of the access ports is eligible to receive the second transaction, the method further comprising: initiating the second transaction to deliver second information to the first of the access ports; temporarily storing the second information in the associated memory of the first of the access ports; and After temporarily storing the second information, the current fill level of the associated memory of the first one of the access ports is updated.

17. A method of operating a system on chip, the system on chip comprising a plurality of source devices and a plurality of access ports belonging to one or more target devices, wherein each access port comprises an associated memory, the method comprising: receiving a plurality of requests to perform a transaction to transfer information from the source device to the access port; determining whether each transaction request can be executed based on whether the access port associated with the transaction is eligible to receive information, the determination being based on a current fill level of the access port associated with the transaction; assigning an eligible access port to the source device depending at least on the current fill level of the associated memory; temporarily storing transaction information for said associated memory of said access port determined to be eligible to receive information; as well as The current fill level of the associated memory of each access point is updated after information is input to or output from the associated memory.

18. The method of claim 17, wherein each source device is assigned an indication representing a degree of priority, and wherein assigning the eligible access ports comprises: The eligible access port is assigned to the source device depending on the current fill level of the associated memory and depending on the priority degree.

19. The method of claim 18, wherein assigning the eligible access port comprises: The access ports acquired in increasing order of current fill levels are sequentially assigned to the source devices acquired in decreasing order of priority levels, respectively, until all available eligible access ports are exhausted.

20. The method of claim 19, wherein assigning the eligible access port further comprises: The remaining source devices acquired in descending order of priority levels are respectively assigned the already assigned access ports acquired in descending order of fill levels in order.

21. The method of claim 17, further comprising: delivering a control word to interconnect circuitry between the source devices and the access ports, the control word specifying the access port assigned to each source device; for each transaction, routing the transaction from an interconnect circuit input interface coupled to the source device to an interconnect circuit output interface coupled to the access port; as well as For each transaction, the transaction is delivered to the access port.

22. The method of claim 21, wherein each transaction comprises transaction information and a control word, and wherein the interconnect circuit output interface delivers the transaction information but not the control word to the access port.

Citation Information

Patent Citations

  • Transaction routing for system on chip

    CN110727635A