CN108259390B - Priority pushing method and device for virtual channels in interconnection bus - Google Patents

Priority pushing method and device for virtual channels in interconnection bus Download PDF

Info

Publication number
CN108259390B
CN108259390B CN201611250039.4A CN201611250039A CN108259390B CN 108259390 B CN108259390 B CN 108259390B CN 201611250039 A CN201611250039 A CN 201611250039A CN 108259390 B CN108259390 B CN 108259390B
Authority
CN
China
Prior art keywords
priority
node
virtual channel
access command
hop node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611250039.4A
Other languages
Chinese (zh)
Other versions
CN108259390A (en
Inventor
林强
郭鑫
张志强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201611250039.4A priority Critical patent/CN108259390B/en
Publication of CN108259390A publication Critical patent/CN108259390A/en
Application granted granted Critical
Publication of CN108259390B publication Critical patent/CN108259390B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/253Routing or path finding in a switch fabric using establishment or release of connections between ports
    • H04L49/254Centralised controller, i.e. arbitration or scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/308Route determination based on user's profile, e.g. premium users
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The application discloses a method and a device for pushing service quality priority of virtual channels in an interconnection bus, which solve the problem that in the use scene of multiple virtual channels in the existing interconnection bus, an access command with low priority blocks an access command with high priority. The method comprises the steps that a first node in a first virtual channel receives the priority of an access command pushed by a previous hop of node; monitoring the priority of all access commands loaded by the first node in the first virtual channel; selecting the highest priority from the priorities of the pushed access commands and the priorities of all the loaded access commands, and arbitrating the bus use right at the priority of the first access command of the first virtual channel by the first node; and after the first access command is arbitrated, pushing the selected priority to the next-hop node, so that the problem that the virtual channel blocks the access command with high priority due to the access command with low priority through the dynamic adjustment of the priority can be avoided.

Description

Priority pushing method and device for virtual channels in interconnection bus
Technical Field
The present application relates to the field of chip technologies, and in particular, to a method and an apparatus for pushing a priority of a virtual channel in an interconnection bus.
Background
FIG. 1 is a schematic diagram of an on-chip bus interconnect. The Router (Router) is responsible for realizing the routing calculation of each master (master) accessing the slave (slave), the Router is internally provided with a cross-bar (crossbar) structure, and the Router determines to route the Router to a certain output node according to the access address of an access command (transaction) sent by each master. Meanwhile, each master has different service access requirements for each slave, the whole interconnection path adopts a plurality of Virtual Channels (VCs), and each VC is responsible for transmitting one service access type. Multiple VCs share an actual physical channel during actual transmission.
Fig. 2 is a schematic diagram illustrating that multiple VCs share one physical channel inside a Router. In fig. 2, three VCs are taken as an example, each VC is responsible for a required service, which is VC0 corresponding to Real Time (RT) requirement, VC1 corresponding to Low Latency (LL) requirement, and VC2 corresponding to large bandwidth (Bulk, B) requirement, respectively, where: the RT VC has dynamic priority requirements, including three priorities of High (High), Medium (Medium) and Low (Low), wherein the priority is higher than Medium and lower; LL VC fixes medium priority and BVC fixes low priority.
In a practical scenario, the following two problems can occur:
the first problem is that: a scenario that an access command with a Low priority (Low QoS level) blocks an access command with a High priority (High QoS level) often exists inside the Master/Router/Slave, for example, in the RT VC of Router0 in fig. 2, the Low priority cannot obtain arbitration, so that the High priority cannot be transmitted.
The second problem is that: there is also a scenario where the access command with low priority blocks the access command with high priority in the multi-level nodes of the whole path, for example, the RT VC of Router1 in fig. 2 is filled with the access command with low priority, so that the RT VC of Router0 cannot be forwarded.
To the above problem, the existing solutions are: by adding a corresponding quality of service push (QoS pressure) accompanying signal to each path, when a next node presses a current node, a high priority of a current access command is pushed down (push), so that first-level transmission is performed, and finally the high priority is transmitted to a blocking node of the back pressure, instead of the low priority of the access command participating in arbitration, so that the problem that the low priority blocks the high priority in the first problem can be effectively solved, but the problem that the low priority blocks the high priority in the multi-VC in the second problem cannot be solved by the solution.
To solve the above problems, the second existing solution is: for each VC requiring quality of service (QoS) enhancement, a Priority _ sel signal is added, and the Priority _ sel signal is used to select two fixed priorities (QoSlevel), and the QoS of the entire VC can be switched according to the Priority selection signal, for example, when any access command in a certain VC is blocked, the Priority of all access commands in the VC can be enhanced by using the Priority selection signal, so as to solve the problem of blocking. However, the control mode in this solution is too extensive, once the priority of the QoS is raised, the entire VC path is completely raised, and the access command that subsequently enters the interconnection bus and does not need to be raised by the QoS is also correspondingly raised; meanwhile, since each VC needs to set an independent priority selection signal, it will result in too many wires and inflexible application.
Disclosure of Invention
The embodiment of the application provides a priority pushing method and device for virtual channels in an interconnection bus, and solves the problems that in an existing multi-virtual-channel usage scene inside the interconnection bus, an access command with low priority inside a certain node of a certain virtual channel blocks an access command with high priority and an access command with low priority in a multi-level node of a certain virtual channel blocks an access command with high priority.
The embodiment of the application provides the following specific technical scheme:
in a first aspect, a method for pushing priority of a virtual channel in an interconnection bus is provided, including:
a first node in a first virtual channel receives the priority of an access command pushed by a previous hop node;
the first node monitors the priority of all access commands loaded by the first node in the first virtual channel;
the first node selects the highest priority from the priorities of the access commands pushed by the previous hop node and the priorities of all the access commands loaded in the first virtual channel, and the highest priority is used as the priority of the first access command of the first virtual channel for the first node to carry out arbitration of the bus usage right;
and after the first access command is arbitrated, the first node pushes the selected priority to a next hop node as the priority of the access command of the first node.
The method has the advantages that in the interconnected bus structure of the virtual channels, the priority of each virtual channel can be dynamically adjusted according to the priority of the access command in the whole virtual channel and the priority of the received access command of the previous hop node, the dynamic adjustment of the priority is pushed forward, the later-stage data cannot be influenced, and the scope control is accurate; in addition, the priority of pushing cannot be switched between fixed priorities, the implementation is flexible, and the control precision is higher.
With reference to the first aspect, in one possible design, before the first node monitors priorities of all access commands loaded by the first node in the first virtual channel, the method further includes:
determining that the first node is loaded with at least one access command within the first virtual channel;
with reference to the first aspect, in one possible design, after the first access command obtains arbitration, the pushing, by the first node, the selected priority as the priority of the access command of the first node to a next-hop node includes:
determining that a credit limit exists in a first virtual channel corresponding to the next hop node;
and after the first access command is arbitrated, synchronously sending the selected priority, the first access command and the identifier of the first virtual channel to the next hop node.
With reference to the first aspect, in one possible design, after the first access command obtains arbitration, the pushing, by the first node, the selected priority as the priority of the access command of the first node to a next-hop node includes:
determining that no credit limit exists in a first virtual channel corresponding to the next hop node;
and carrying the selected priority and the identifier of the first virtual channel in a service quality improvement data packet, and sending the service quality improvement data packet to the next hop node, wherein the service quality improvement data packet is used for transmitting the priority.
The method has the advantages that the flow control is carried out by adopting a credit line mechanism, when no credit line exists in the first virtual channel corresponding to the next hop node, the priority is transmitted by the service quality promotion data packet without carrying any access data, and the service quality promotion data packet does not consume any credit line and is not back-pressed by the credit line, so that the priority is transmitted forwards, the dynamic adjustment of the priority is realized, and the high-priority access command is prevented from being blocked.
With reference to the first aspect, in a possible design, after the identifier of the first virtual channel and the selected priority are carried in a qos enhancement packet and sent to the next hop node, the method further includes:
and if the fact that the credit limit still does not exist in the first virtual channel corresponding to the next hop node is determined, and the received priority pushed by the previous hop node is higher than the selected priority, carrying the priority pushed by the previous hop node and the identifier of the first virtual channel in a new service quality improving data packet, and sending the new service quality improving data packet to the next hop node.
The method has the advantages that when the priority needs to be updated, the dynamic adjustment of the priority can be realized, and the step-by-step pushing of the priority is realized.
In a second aspect, there is provided a priority pushing apparatus for a virtual channel in an interconnection bus, applied to a first node in a first virtual channel, including:
the receiving unit is used for receiving the priority of the access command pushed by the previous hop node;
a monitoring unit, configured to monitor priorities of all access commands loaded by the first node in the first virtual channel;
a determining unit, configured to select a highest priority from the priorities of the access commands pushed by the previous-hop node and the priorities of all the access commands loaded in the first virtual channel, and perform arbitration of bus usage right as a priority of a first access command of the first virtual channel by the first node;
and the pushing unit is used for pushing the selected priority to a next hop node as the priority of the access command of the first node after the first access command is arbitrated.
With reference to the second aspect, in one possible design, the monitoring unit is further configured to:
determining that the first node is loaded with at least one access command within the first virtual channel prior to monitoring the priority of all access commands loaded by the first node within the first virtual channel;
with reference to the second aspect, in one possible design, the determining unit is specifically configured to:
determining that a credit limit exists in a first virtual channel corresponding to the next hop node;
and after the first access command is arbitrated, synchronously sending the selected priority, the first access command and the identifier of the first virtual channel to the next hop node.
With reference to the second aspect, in one possible design, the pushing unit is specifically configured to:
determining that no credit limit exists in a first virtual channel corresponding to the next hop node;
and carrying the selected priority and the identifier of the first virtual channel in a service quality improvement data packet, and sending the service quality improvement data packet to the next hop node, wherein the service quality improvement data packet is used for transmitting the priority.
With reference to the second aspect, in one possible design, the pushing unit is further configured to:
and after the selected priority and the identifier of the first virtual channel are carried in a service quality improvement data packet and sent to the next hop node, if it is determined that no credit limit still exists in the first virtual channel corresponding to the next hop node and the priority pushed by the previous hop node is higher than the selected priority, carrying the priority pushed by the previous hop node and the identifier of the first virtual channel in a new service quality improvement data packet and sending the new service quality improvement data packet to the next hop node.
In a third aspect, an apparatus is provided, which includes a processor, a memory, and an interface unit, where the memory stores a computer-readable program, and the processor controls the interface unit by executing the program in the memory, so as to implement the priority push method according to the first aspect.
In a fourth aspect, a computer storage medium is provided for storing computer software instructions for the first aspect, including a program designed for executing the first aspect.
It should be understood that the second to fourth aspects of the embodiment of the present application are consistent with the technical solution of the first aspect of the embodiment of the present application, and the beneficial effects obtained by the aspects and the corresponding implementable design manner are similar, and are not described again.
Drawings
FIG. 1 is a schematic diagram of a chip internal bus interconnect;
fig. 2 is a schematic diagram of multiple VCs sharing one physical channel inside a Router;
FIG. 3 is a flowchart of a method for pushing priorities of virtual channels in an interconnect bus according to an embodiment of the present disclosure;
FIG. 4 is a schematic diagram of a modified Router structure according to an embodiment of the present application;
FIG. 5 is a flow chart illustrating the generation and processing of QoS enhancement packets according to an embodiment of the present application;
FIG. 6 is a diagram of a priority pushing apparatus for virtual channels in an interconnect bus according to an embodiment of the present disclosure;
fig. 7 is a diagram of a priority push device according to an embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application.
The embodiment of the application provides a priority pushing method and device for virtual channels in an interconnection bus, and solves the problems that in the use scene of multiple virtual channels in the existing interconnection bus, an access command with low priority in a certain virtual channel blocks an access command with high priority, and an access command with low priority in a virtual channel of a certain node in a multi-level node blocks an access command with high priority in a virtual channel of other nodes. The method and the device are based on the same inventive concept, and because the principles of solving the problems of the method and the device are similar, the implementation of the device and the method can be mutually referred, and repeated parts are not repeated.
Referring to fig. 3, an embodiment of the present application provides a method for pushing qos priority of a virtual channel in an interconnection bus, which includes the following specific processes:
step 31: and the first node in the first virtual channel receives the priority of the access command pushed by the previous-hop node.
It should be noted that the priority in the embodiment of the present application refers to a quality of service priority.
Step 32: the first node monitors the priority of all access commands loaded by the first node within the first virtual channel.
It should be noted that the access command loaded by the first node in the first virtual channel refers to an access command stored in the first node and locally pending, and the priority pushed by the previous-hop node in step 31 is the highest priority selected from the priority of the access command stored in the previous-hop node and the priority received by the previous-hop node; if the previous-hop node does not receive the priority, the priority pushed by the previous-hop node at this time is the highest priority among the priorities of the access commands stored in the previous-hop node to be processed locally.
Further, before performing step 32, the first node further needs to perform: determining that at least one access command exists within the first virtual channel.
Step 33: and the first node selects the highest priority from the priorities of the access commands pushed by the previous hop node and the priorities of all the access commands loaded in the first virtual channel, and the highest priority is used as the priority of the first access command of the first virtual channel for the first node to carry out arbitration of the bus use right.
Step 34: and after the first access command is arbitrated, the first node pushes the selected priority to a next hop node as the priority of the access command of the first node.
Specifically, after the first access command is arbitrated, the first node pushes the selected priority to a next-hop node as the priority of the access command of the first node, including the following two possible implementations:
in a first possible implementation manner, if it is determined that a credit line exists in a first virtual channel corresponding to the next-hop node, after the first access command is arbitrated, the selected priority, the first access command, and an identifier of the first virtual channel are synchronously sent to the next-hop node.
In a second possible implementation manner, if it is determined that there is no credit line in the first virtual channel corresponding to the next-hop node, the selected priority and the identifier of the first virtual channel are carried in a qos enhancement packet, and the qos enhancement packet is sent to the next-hop node, where the qos enhancement packet is used to transmit the priority.
In a second possible implementation manner, under the condition that the next hop node has no credit line, the step-by-step pushing of the service quality priority of the virtual channel can still be realized.
Wherein: the identification of the virtual channel is used to distinguish which virtual channel the priority of the current transfer corresponds to.
Further, after the first node finishes the step 33, that is, after the selected qos priority and the identifier of the first virtual channel are carried in a qos upgrade data packet and sent to the next hop node, if it is determined that there is no credit line in the first virtual channel corresponding to the next hop node yet and the priority pushed by the previous hop node is higher than the selected priority, the priority pushed by the previous hop node and the identifier of the first virtual channel are carried in a new qos upgrade data packet and sent to the next hop node.
By the method, in the interconnected bus structure of the virtual channels, the priority of each virtual channel can be dynamically adjusted according to the priority of the access command in the whole virtual channel and the priority of the received access command of the previous-hop node, and the dynamic adjustment of the priority is pushed forward, so that the back-level data cannot be influenced, and the scope control is accurate; in addition, the priority of pushing cannot be switched between fixed priorities, the implementation is flexible, and the control precision is higher.
The method of fig. 3 is described in detail below by way of a specific example.
Fig. 4 is a schematic diagram of an improved current node. In the embodiment of the present application, the node is a Router (Router).
The Router includes a plurality of ports (ports), a plurality of splitters, a bus arbiter, a monitoring unit, and a data selector, which correspond to the ports one to one.
The ports are used for receiving the access command and the priority and sending the received access command and the priority to the corresponding separators. The access command comprises data and commands transmitted to the current node by the previous-hop node, and the priority is used for describing the priority of the access command output to the current node by the previous-hop node.
There are queues (queues) of 3 traffic types between each of the plurality of splitters and the data selector. The plurality of splitters transmit the access command to the data selector through a queue corresponding to a service type of the access command. The queue may be a first-in-first-out nature of a cache element. Among the 3 service types of queue corresponding to each separator, RT queue, LL queue and B queue are used to store the respective access command to be processed and transmitted to the current node.
The monitoring unit is used for monitoring the priorities of all the access commands in the queue corresponding to the service type, selecting the highest priority from the priorities of all the access commands in the current queue and the input priorities, and outputting the highest priority to the arbiter for priority arbitration.
The arbiter is used for arbitrating which priority corresponding queue should obtain the use right of the bus by a certain priority algorithm according to a plurality of input priorities.
And the data selector is used for outputting the first access command in the corresponding queue and the priority participating in arbitration to the next hop node according to the arbitration result of the arbiter.
Wherein QoS _ P is the QoS priority of the transaction delivered by the upper Router, and QoS _ N is the QoS priority (QoS level) of the transaction sent to the lower node.
The RT VC for port 0(port0) in fig. 4 is blocked by an internal high priority access command because the low priority access command at the head of the queue cannot be arbitrated.
RT _ QoS _ MON in fig. 4 is a QoS monitoring unit of RT VC, which is responsible for monitoring the priority of all access commands present in the queue (queue) of RT VC, and at the same time collects QoS _ P passed by Port0, selects the highest priority (here, high priority) from the priority of all access commands and the QoS _ P passed, and instead of the Low priority (Low QoS) of the access command at the head of the VC queue, an ingress bus Arbiter (Arbiter) participates in arbitration, in this way achieving the promotion of priority inside Router.
After the head-of-queue access command of the RT VC is arbitrated, the QoS _ N (High _ QoS) corresponding to the arbitration is synchronously sent to the lower Router, so that the lower Router can see the High priority pushed (push) from the upper Router.
The transfer mechanism of the service quality priority is as follows:
because a plurality of VCs are used between routers, in order to prevent the VCs from being blocked when sharing a physical channel, the VCs usually adopt a credit limit (credit) mechanism for flow control in the transmission process, so whether a credit receives an access command at a lower node is considered when priority is transmitted, and two processing modes are provided for whether the credit exists:
the first processing mode is that when the RT VC corresponding to the lower node has credit, the transfer of QoS _ N and the head of queue access command of the current VC are synchronously sent to the lower Router or slave, and the identifier of the current VC is synchronously transferred at the same time.
The second processing mode is that when the RT VC corresponding to the lower node has no credit, it indicates that the RT VC corresponding to its rear Router or slave is blocked, and the current Router needs to transfer the highest priority selected in the current VC to the lower Router or slave. Since the subordinate node does not have a credit, QoS _ N cannot be issued synchronously with the access command, and QoS _ N can only be delivered by generating one QoS lifting packet, and at this time, the generation and processing flow of the QoS lifting packet can be referred to as fig. 5.
S50: detecting whether credit received data exists in the lower node, if not, executing S51; otherwise, ending the flow.
S51: detecting whether an access command exists in a queue of the current RT VC, if so, executing S52; otherwise, ending the flow.
S52: and independently generating a QoS (quality of service) push packet (QoS (quality of service) which is used for transmitting QoS (quality of service) promotion information, only carries identification information of the current RT VC and does not carry any effective access command.
S53: the QoS press packet is delivered to the subordinate node.
Specifically, the QoS press packet may be directly transmitted to the lower node, or may be arbitrated with other VCs (e.g., VC1 and VC2 in fig. 4) and transmitted to the lower node after obtaining the arbitration. The transfer of the QoS press packet does not consume any credit, nor is it back-pressed by any credit.
S54: the next cycle is continued.
S55: detecting whether a credit exists in the lower node, if not, executing S56; otherwise, ending the flow.
S56: if the credit back pressure state of the RT VC corresponding to the subordinate node has not been evacuated, when receiving that QoS _ P pushed by a superior node causes QoS _ N to need updating, S52 is executed to regenerate a QoS press packet to push to the subordinate node.
Based on the foregoing embodiments, as shown in fig. 6, an embodiment of the present application provides a priority pushing apparatus 600 for virtual channels in an interconnection bus, as shown in fig. 6, the apparatus 600 includes a receiving unit 601, a monitoring unit 602, a determining unit 603, and a pushing unit 604, where:
a receiving unit 601, configured to receive a priority of an access command pushed by a previous-hop node;
a monitoring unit 602, configured to monitor priorities of all access commands loaded by the first node in the first virtual channel;
a determining unit 603, configured to select a highest priority from the priorities of the access commands pushed by the previous-hop node and the priorities of all access commands loaded in the first virtual channel, as a priority of a first access command of the first virtual channel for the first node to perform arbitration of bus usage rights;
a pushing unit 604, configured to push the selected priority to a next-hop node as the priority of the access command of the first node after the first access command obtains arbitration.
Optionally, the monitoring unit 602 is further configured to:
determining that the first node is loaded with at least one access command within the first virtual channel prior to monitoring the priority of all access commands loaded by the first node within the first virtual channel;
optionally, the determining unit 603 is specifically configured to:
determining that a credit limit exists in a first virtual channel corresponding to the next hop node;
and after the first access command is arbitrated, synchronously sending the selected priority, the first access command and the identifier of the first virtual channel to the next hop node.
Optionally, the pushing unit 604 is specifically configured to:
determining that no credit limit exists in a first virtual channel corresponding to the next hop node;
and carrying the selected priority and the identifier of the first virtual channel in a service quality improvement data packet, and sending the service quality improvement data packet to the next hop node, wherein the service quality improvement data packet is used for transmitting the priority.
Optionally, the pushing unit 604 is further configured to:
and after the selected priority and the identifier of the first virtual channel are carried in a service quality improvement data packet and sent to the next hop node, if it is determined that no credit limit still exists in the first virtual channel corresponding to the next hop node and the priority pushed by the previous hop node is higher than the selected priority, carrying the priority pushed by the previous hop node and the identifier of the first virtual channel in a new service quality improvement data packet and sending the new service quality improvement data packet to the next hop node.
The functional implementation and the interaction manner of each unit of the apparatus 600 in the embodiment of the present application may further refer to the description of the related method embodiment, and are not described herein again.
It should be understood that the above division of the units in the apparatus 600 is only a logical division, and the actual implementation may be wholly or partially integrated into one physical entity, or may be physically separated. In implementation, the steps of the method or the units above may be implemented by hardware integrated logic circuits in a processor element or instructions in software. The processing element may be a general-purpose processor, such as a Central Processing Unit (CPU), or one or more integrated circuits configured to implement the above method, such as: one or more specific integrated circuits (ASICs), one or more microprocessors (DSPs), one or more field-programmable gate arrays (FPGAs), etc.
According to the same inventive concept, an embodiment of the present application further provides a priority pushing apparatus 700, as shown in fig. 7, where the apparatus 700 includes a processor 701, a memory 702, and an interface unit 703, where the apparatus 700 may be a Master, a Slave, or a Router in an interconnection bus, and a program code for executing a scheme of the present application is stored in the memory 702, and is used to instruct the processor 701 to execute the priority pushing method shown in fig. 3, and specifically includes: receiving the priority of an access command pushed by the previous hop of equipment; monitoring the priority of all access commands loaded by the device 700 in the first virtual channel; selecting the highest priority from the priorities of the access commands pushed by the previous-hop device and the priorities of all the access commands loaded in the first virtual channel as the priority of the first access command of the first virtual channel for the device 700 to arbitrate the bus usage right; after the first access command is arbitrated, the selected priority is pushed to the next-hop device as the priority of the access command of the first node through the interface unit 703.
The method can also be implemented by programming a processor to solidify the code corresponding to the method shown in fig. 3 into a chip, so that the chip can execute the method shown in fig. 3 when running.
It is understood that the processor involved in the above-described device 700 of the embodiments of the present application may be a CPU, a DSP, an ASIC, or one or more integrated circuits for controlling the execution of the programs of the embodiments of the present application. The one or more memories included in the computer system may be a read-only memory (ROM) or another type of static storage device that can store static information and instructions, a Random Access Memory (RAM) or another type of dynamic storage device that can store information and instructions, or a disk storage. The memories and the interface unit are connected to the processor via a bus or via a dedicated connection.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
While alternative embodiments of the present application have been described, additional variations and modifications of these embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims be interpreted as including preferred embodiments and all alterations and modifications as fall within the scope of the application.
It will be apparent to those skilled in the art that various changes and modifications may be made in the embodiments of the present application without departing from the spirit and scope of the embodiments of the present application. Thus, if such modifications and variations of the embodiments of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to encompass such modifications and variations.

Claims (6)

1. A method for pushing priority of a virtual channel in an interconnect bus, comprising:
a first node in a first virtual channel receives the priority of an access command pushed by a previous hop node;
the first node monitors the priority of all access commands loaded by the first node in the first virtual channel;
the first node selects the highest priority from the priorities of the access commands pushed by the previous hop node and the priorities of all the access commands loaded in the first virtual channel, and the highest priority is used as the priority of the first access command of the first virtual channel for the first node to carry out arbitration of the bus usage right;
after the first access command obtains arbitration, the first node pushes the selected priority to a next hop node as a priority of an access command of the first node, wherein after the first access command obtains arbitration, the first node pushes the selected priority to the next hop node as a priority of an access command of the first node, including:
determining that a credit limit exists in a first virtual channel corresponding to the next hop node; after the first access command is arbitrated, synchronously sending the selected priority, the first access command and the identifier of the first virtual channel to the next hop node; or
Determining that no credit limit exists in a first virtual channel corresponding to the next hop node; and carrying the selected priority and the identifier of the first virtual channel in a service quality improvement data packet, and sending the service quality improvement data packet to the next hop node, wherein the service quality improvement data packet is used for transmitting the priority.
2. The method of claim 1, wherein the first node monitors the priority of all access commands the first node loads within the first virtual channel, the method further comprising:
determining that the first node is loaded with at least one access command within the first virtual channel.
3. The method of claim 1, wherein the selected priority and the identification of the first virtual channel are carried in a quality of service enhancement packet sent to the next hop node, the method further comprising:
and if the fact that the credit limit still does not exist in the first virtual channel corresponding to the next hop node is determined, and the received priority pushed by the previous hop node is higher than the selected priority, carrying the priority pushed by the previous hop node and the identifier of the first virtual channel in a new service quality improving data packet, and sending the new service quality improving data packet to the next hop node.
4. A priority pushing apparatus for a virtual channel in an interconnection bus, applied to a first node in a first virtual channel, comprising:
the receiving unit is used for receiving the priority of the access command pushed by the previous hop node;
a monitoring unit, configured to monitor priorities of all access commands loaded by the first node in the first virtual channel;
a determining unit, configured to select a highest priority from the priorities of the access commands pushed by the previous-hop node and the priorities of all the access commands loaded in the first virtual channel, and perform arbitration of bus usage right as a priority of a first access command of the first virtual channel by the first node;
the pushing unit is used for pushing the selected priority to a next hop node as the priority of the access command of the first node after the first access command is arbitrated; wherein, after the first access command obtains arbitration, the pushing unit pushes the selected priority as the priority of the access command of the first node to the next-hop node, and is specifically configured to:
determining that a credit limit exists in a first virtual channel corresponding to the next hop node; after the first access command is arbitrated, synchronously sending the selected priority, the first access command and the identifier of the first virtual channel to the next hop node; or
Determining that no credit limit exists in a first virtual channel corresponding to the next hop node; and carrying the selected priority and the identifier of the first virtual channel in a service quality improvement data packet, and sending the service quality improvement data packet to the next hop node, wherein the service quality improvement data packet is used for transmitting the priority.
5. The apparatus of claim 4, wherein the monitoring unit is further to:
determining that the first node is loaded with at least one access command within the first virtual channel prior to monitoring the priority of all access commands loaded by the first node within the first virtual channel.
6. The apparatus of claim 4, wherein the pushing unit is further to:
and after the selected priority and the identifier of the first virtual channel are carried in a service quality improvement data packet and sent to the next hop node, if it is determined that no credit limit still exists in the first virtual channel corresponding to the next hop node and the priority pushed by the previous hop node is higher than the selected priority, carrying the priority pushed by the previous hop node and the identifier of the first virtual channel in a new service quality improvement data packet and sending the new service quality improvement data packet to the next hop node.
CN201611250039.4A 2016-12-29 2016-12-29 Priority pushing method and device for virtual channels in interconnection bus Active CN108259390B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611250039.4A CN108259390B (en) 2016-12-29 2016-12-29 Priority pushing method and device for virtual channels in interconnection bus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611250039.4A CN108259390B (en) 2016-12-29 2016-12-29 Priority pushing method and device for virtual channels in interconnection bus

Publications (2)

Publication Number Publication Date
CN108259390A CN108259390A (en) 2018-07-06
CN108259390B true CN108259390B (en) 2020-10-16

Family

ID=62720932

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611250039.4A Active CN108259390B (en) 2016-12-29 2016-12-29 Priority pushing method and device for virtual channels in interconnection bus

Country Status (1)

Country Link
CN (1) CN108259390B (en)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113515477B (en) * 2020-04-09 2024-05-03 珠海全志科技股份有限公司 Dynamic adjustment method and device for priority in bus network and storage medium
CN111431606A (en) * 2020-04-15 2020-07-17 联合华芯电子有限公司 Bus type networking system for bidirectional optical fiber communication
CN116636183A (en) * 2021-05-31 2023-08-22 华为技术有限公司 Computer system and bus flow control method
CN114513471B (en) * 2022-01-13 2023-05-26 中国人民解放军海军航空大学 Marine node network selection method and system based on dynamic composite priority

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105022717A (en) * 2015-06-04 2015-11-04 中国航空无线电电子研究所 Network on chip resource arbitration method and arbitration unit of additional request number priority

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100481048C (en) * 2006-03-31 2009-04-22 上海奇码数字信息有限公司 Bus arbitration method
CN101252513B (en) * 2008-04-07 2010-09-29 哈尔滨工业大学 On-chip network band width resource scheduling method for ensuring service quality
CN101510181A (en) * 2009-03-19 2009-08-19 北京中星微电子有限公司 Bus arbitration method and bus arbitration apparatus
US10503442B2 (en) * 2015-01-28 2019-12-10 Avago Technologies International Sales Pte. Limited Method and apparatus for registering and storing virtual machine unique information capabilities

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105022717A (en) * 2015-06-04 2015-11-04 中国航空无线电电子研究所 Network on chip resource arbitration method and arbitration unit of additional request number priority

Also Published As

Publication number Publication date
CN108259390A (en) 2018-07-06

Similar Documents

Publication Publication Date Title
US9860197B2 (en) Automatic buffer sizing for optimal network-on-chip design
US9571402B2 (en) Congestion control and QoS in NoC by regulating the injection traffic
CN108259390B (en) Priority pushing method and device for virtual channels in interconnection bus
US9426099B2 (en) Router, method for controlling router, and program
US20210336885A1 (en) Phantom queue link level load balancing system, method and device
US9007920B2 (en) QoS in heterogeneous NoC by assigning weights to NoC node channels and using weighted arbitration at NoC nodes
US9825809B2 (en) Dynamically configuring store-and-forward channels and cut-through channels in a network-on-chip
US9798603B2 (en) Communication device, router having communication device, bus system, and circuit board of semiconductor circuit having bus system
US8817619B2 (en) Network system with quality of service management and associated management method
CN105721355A (en) Method for transmitting message through network-on-chip route and network-on-chip route
EP2670085A1 (en) System for performing Data Cut-Through
US9185026B2 (en) Tagging and synchronization for fairness in NOC interconnects
US11258723B2 (en) Data processing method and apparatus, and switching device using footprint queues
KR20160013799A (en) Data processing method of noc without buffer and noc electronic element
US20150312160A1 (en) System for flexible dynamic reassignment of throughput
US9954771B1 (en) Packet distribution with prefetch in a parallel processing network device
US10911366B2 (en) Technologies for balancing throughput across input ports of a multi-stage network switch
US20190097935A1 (en) Technologies for selecting non-minimal paths and throttling port speeds to increase throughput in a network
CN113852554B (en) Data transmission method, device and equipment
CN111953618B (en) Method, device and system for de-ordering under multistage parallel exchange architecture
US11271897B2 (en) Electronic apparatus for providing fast packet forwarding with reference to additional network address translation table
CN110581807B (en) Node equipment, routing method and interconnection system
TWI752005B (en) Method, system and distributed system for intermediate data transmission
CN118101557A (en) Network-on-chip structure and flow balancing method of network-on-chip
CN117749693A (en) Route distribution method, system, device and storage medium

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant