CN117807000A - 通道总线仲裁电路、加速装置、方法、系统、装置及介质 - Google Patents
通道总线仲裁电路、加速装置、方法、系统、装置及介质 Download PDFInfo
- Publication number
- CN117807000A CN117807000A CN202410230114.9A CN202410230114A CN117807000A CN 117807000 A CN117807000 A CN 117807000A CN 202410230114 A CN202410230114 A CN 202410230114A CN 117807000 A CN117807000 A CN 117807000A
- Authority
- CN
- China
- Prior art keywords
- channel
- multiplexer
- memory circuit
- channel bus
- data
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 230000001133 acceleration Effects 0.000 title claims abstract description 35
- 230000015654 memory Effects 0.000 claims abstract description 323
- 238000012545 processing Methods 0.000 claims abstract description 33
- 230000008569 process Effects 0.000 claims abstract description 29
- 230000000875 corresponding effect Effects 0.000 claims description 98
- 238000012544 monitoring process Methods 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 9
- 230000001276 controlling effect Effects 0.000 claims description 8
- 230000002596 correlated effect Effects 0.000 claims description 6
- 239000002699 waste material Substances 0.000 abstract description 8
- 230000008054 signal transmission Effects 0.000 abstract description 4
- 230000005540 biological transmission Effects 0.000 description 15
- 238000004364 calculation method Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1626—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Bus Control (AREA)
Abstract
本发明公开了一种通道总线仲裁电路、加速装置、方法、系统、装置及介质,涉及数据处理领域,用于解决多个通道总线对待访问存储器进行访问时浪费时间周期的问题。该方案为各通道总线设置了优先级,控制电路按照预设通道优先级的顺序将各通道总线传输的访问请求通过第一多路复用器存储至第一内存电路,待访问存储器按照存储顺序依次处理访问请求,对多个通道总线发送的访问请求进行有效的协调和管理,可确保各访问请求均被处理,避免访问的混乱和冲突,避免在切换通道时导致的时钟周期浪费问题,减少待访问存储器的等待时间,有效利用待访问存储器的带宽,此外使用硬件电路来实现相比于软件逻辑而言还可以降低信号传输的延迟。
Description
技术领域
本发明涉及数据处理领域,特别涉及一种通道总线仲裁电路、加速装置、方法、系统、装置及介质。
背景技术
随着云计算、人工智能等技术的迅猛发展,对高算力的需求不断增长,CPU(Central Processing Unit,中央处理器)结合FPGA(Field-Programmable Gate Array,现场可编程门阵列)加速卡等异构加速计算单元已成为数据中心中主流的计算单元。如图1所示,在以FPGA为加速计算单元时,FPGA内部的加速功能单元(AFU,Accelerated ProcessingUnit)通过数据总线与外部存储器进行数据的读写操作。由于FPGA具有并行计算的优势,因此在一些场景下可能需要多个加速功能单元同时读写外部存储器的数据,这就需要一个多通道总线合并的仲裁模块来协调不同通道之间的访问。
然而,目前的仲裁模块存在一些问题。首先,它们没有为各通道设置优先级,导致在切换通道时效率较低。这意味着在切换通道的过程中会浪费许多时钟周期,进而影响整体FPGA计算性能。其次,随着需要合并的通道数量增加,浪费的时钟周期也会相应增加,导致外部存储器的带宽无法被有效利用,从而降低了整体FPGA的计算性能。
发明内容
本发明的目的是提供一种通道总线仲裁电路、加速装置、方法、系统、装置及介质,对多个通道总线发送的访问请求进行有效的协调和管理,可确保各访问请求均被处理,避免访问的混乱和冲突,避免在切换通道时导致的时钟周期浪费问题,减少待访问存储器的等待时间,有效利用待访问存储器的带宽,此外使用硬件电路来实现相比于软件逻辑而言还可以降低信号传输的延迟。
第一方面,本发明提供了一种通道总线仲裁电路,包括控制电路、第一多路复用器和第一内存电路;
多个通道总线与所述第一多路复用器的多个输入端一一对应连接,多个所述通道总线与多个加速功能单元一一对应连接,所述第一多路复用器的输出端与所述第一内存电路的一端连接,所述第一内存电路的另一端与待访问存储器连接,所述控制电路与所述第一多路复用器的控制端连接;
所述控制电路用于监测各个所述通道总线发送的访问请求,并根据预设通道优先级的顺序调整所述第一多路复用器中导通的通道,以将各个所述访问请求依次存储至所述第一内存电路中,以便所述待访问存储器按照存储的顺序依次处理所述第一内存电路中的多个所述访问请求。
在一种实现方式中,所述通道总线仲裁电路还包括第二内存电路和第二多路复用器;所述第二内存电路的一端与所述第一内存电路连接,所述第二内存电路的另一端与所述第二多路复用器的控制端连接,所述第二多路复用器的输入端与所述待访问存储器连接,所述第二多路复用器的多个输出端分别与多个所述通道总线一一对应连接;
所述第一内存电路具体用于在所述访问请求为写请求时,将与所述写请求对应的第一报文存储至自身的存储空间中;在所述访问请求为读请求时,将与所述读请求对应的第二报文中的请求类型和待读取地址存储至自身的存储空间中,并将第二报文中的通道总线标识存储至所述第二内存电路,所述第一报文包括所述请求类型、待写入地址和待写入数据;
所述第二内存电路用于存储与所述读请求对应的通道总线的标识,并在从所述待访问存储器中读取到所述第二报文对应的待读取数据时,控制所述第二多路复用器中与所述通道总线标识对应的通道总线对应的通道导通,以将所述第二报文对应的待读取数据传输至与所述通道总线标识对应的通道总线。
在一种实现方式中,所述第一报文还包括所述待写入数据的第一突发长度,所述通道总线仲裁电路还包括第一计数器,所述第一计数器一端与所述第一多路复用器的输出端连接,所述第一计数器的另一端与所述第一内存电路连接,所述第一计数器的输出端与所述控制电路连接;
所述第一计数器用于在所述通道总线发送的所述写请求有效时,将自身的第一计数值加一,并在所述第一计数值达到所述第一突发长度时,输出通道切换信号至所述控制电路;
所述控制电路具体用于在首次控制所述第一多路复用器的通道导通时,根据所述预设通道优先级选择优先级最高的通道总线对应的通道导通,在非首次控制所述第一多路复用器的通道导通时,根据所述通道切换信号及所述预设通道优先级调整所述第一多路复用器中导通的通道,以将各个所述访问请求依次存储至所述第一内存电路中,以便所述待访问存储器按照存储的顺序依次处理所述第一内存电路中的多个所述访问请求。
在一种实现方式中,所述第二报文还包括所述待读取数据的第二突发长度,所述第一内存电路还用于在所述访问请求为读请求时,将所述第二突发长度存储至所述第二内存电路,所述第二内存还用于存储所述第二突发长度;
所述通道总线仲裁电路还包括第二计数器,所述第二计数器的第一端与所述第二多路复用器的输入端连接,所述第二计数器的第二端与所述第二内存电路连接;
所述第二计数器用于在所述第二多路复用器的输入端输入的待读取数据的数据标志位有效时,将自身的第二计数值加一,并在所述第二计数值达到与所述第二突发长度时,将所述第二计数值清零。
第二方面,本发明还提供了一种加速装置,包括多个加速功能单元和多个通道总线,还包括上述所述的通道总线仲裁电路,多个所述加速功能单元通过和自身一一对应的通道总线与所述通道总线仲裁电路中的控制电路连接。
第三方面,本发明还提供了一种通道总线仲裁方法,应用于上述所述的通道总线仲裁电路中的控制电路,所述通道总线仲裁方法包括:
监测所述多个通道总线发送的访问请求;
按照预设通道优先级的顺序调整第一多路复用器中导通的通道;
将所述访问请求通过所述第一多路复用器存储至第一内存电路中,以便待访问存储器按照存储的顺序依次处理所述第一内存电路中的多个所述访问请求。
在一种实现方式中,所述通道总线仲裁电路还包括第二内存电路和第二多路复用器;所述第二内存电路的一端与第一内存电路连接,所述第二内存电路的另一端与所述第二多路复用器的控制端连接,所述第二多路复用器的输入端与待访问存储器连接,所述第二多路复用器的多个输出端分别与多个所述通道总线一一对应连接;
将所述访问请求通过所述第一多路复用器存储至第一内存电路中,包括:
在所述访问请求为写请求时,将所述写请求对应的第一报文通过所述第一多路复用器存储至所述第一内存电路中,所述第一报文包括请求类型、待写入地址和待写入数据;
在所述访问请求为读请求时,将所述读请求对应的第二报文中的请求类型和待读取地址通过所述第一多路复用器存储至所述第一内存电路中,并触发所述第一内存电路将所述第二报文中的通道总线标识存储至第二内存电路中;
在从所述待访问存储器中读取到待读取数据时,触发所述第二内存电路控制所述第二多路复用器中与所述通道总线标识对应的通道总线对应的通道导通;
通过所述第一多路复用器中导通的通道将所述待读取数据传输至与所述通道总线标识对应的通道总线。
在一种实现方式中,所述第一报文还包括所述待写入数据的第一突发长度,所述通道总线仲裁方法还包括:
在所述访问请求为写请求时,判断所述第一突发长度是否为一;
若为一,则将所述写请求对应的第一报文通过所述第一多路复用器存储至所述第一内存电路中,并在完成对所述待写入数据的写入后,进入监测所述多个通道总线发送的访问请求的步骤;
若所述第一突发长度不为一,则将所述写请求对应的第一报文通过所述第一多路复用器存储至所述第一内存电路中,并对所述第一多路复用器传输的有效的写请求进行计数,在所述有效的写请求的第一计数值达到所述第一突发长度时输出通道切换信号,并将所述第一计数值清零,进入监测所述多个通道总线发送的访问请求的步骤。
在一种实现方式中,所述通道总线仲裁电路还包括第一计数器,所述第一计数器一端与所述第一多路复用器的输出端连接,所述第一计数器的另一端与所述第一内存电路连接,所述第一计数器的输出端与所述控制电路连接;对所述第一多路复用器传输的有效的写请求进行计数,在所述有效的写请求的第一计数值达到所述第一突发长度时输出通道切换信号,并将所述第一计数值清零,进入监测所述多个通道总线发送的访问请求的步骤,包括:
触发所述第一计数器在监测到所述第一多路复用器传输的写请求有效时,将自身的第一计数值加一;
在所述第一计数值达到所述第一突发长度时,输出通道切换信号并将所述第一计数值清零,以进入监测所述多个通道总线发送的访问请求的步骤。
在一种实现方式中,所述第二报文还包括所述待读取数据的第二突发长度,所述通道总线仲裁方法还包括:
在从所述待访问存储器中读取到所述待读取数据时,对所述第二多路复用器的输入端输入的待读取数据的数据标志位的有效个数进行计数,得到第二计数值;
在所述第二计数值达到所述第二突发长度时,将所述第二计数值清零。
在一种实现方式中,所述通道总线仲裁电路还包括第二计数器,所述第二计数器的第一端与所述第二多路复用器的输入端连接,所述第二计数器的第二端与所述第二内存电路连接;在从所述待访问存储器中读取到所述待读取数据时,对所述第二多路复用器的输入端输入的待读取数据的数据标志位的有效个数进行计数,得到第二计数值,包括:
在从所述待访问存储器中读取到所述待读取数据时,判断所述第二多路复用器的输入端输入的待读取数据的数据标志位是否有效;
若有效,则触发所述第二计数器的第二计数值加一;
在所述第二计数值达到所述第二突发长度时,将所述第二计数值清零,包括:
在所述第二计数值达到所述第二突发长度时,触发所述第二计数器将所述第二计数值清零。
在一种实现方式中,将所述写请求对应的第一报文通过所述第一多路复用器存储至所述第一内存电路中之前,还包括:
判断所述第一内存电路中存储的第一数据量是否小于第一阈值,所述第一阈值小于所述第一内存电路的容量值;
若所述第一数据量小于所述第一阈值,则进入将所述写请求对应的第一报文通过所述第一多路复用器存储至所述第一内存电路中的步骤;
若所述第一数据量不小于所述第一阈值,则进入等待状态,直至所述第一内存电路中存储的所述第一数据量小于所述第一阈值。
在一种实现方式中,在所述第一突发长度不为一时,判断所述第一内存电路中存储的所述第一数据量是否小于第一阈值,包括:
在每次接收到所述写请求且所述第一计数值未达到所述第一突发长度时,判断所述第一内存电路中存储的第一数据量是否小于第一阈值;
若在第一计数值未达到所述第一突发长度且所述第一内存电路中存储的所述第一数据量不小于所述第一阈值时,进入等待状态,直至所述第一内存电路中存储的所述第一数据量小于所述第一阈值。
在一种实现方式中,在所述访问请求为读请求时,将所述读请求对应的第二报文中的请求类型和待读取地址通过所述第一多路复用器存储至所述第一内存电路中,并触发所述第一内存电路将所述第二报文中的通道总线标识存储至第二内存电路中之前,还包括:
判断所述第一内存电路中存储的第一数据量是否小于第一阈值且所述第二内存电路中的第二数据量是否小于第二阈值,所述第一阈值小于所述第一内存电路的容量值,所述第二阈值小于所述第二内存电路的容量值;
若所述第一数据量小于所述第一阈值且所述第二数据量小于所述第二阈值,则进入在所述访问请求为读请求时,将所述读请求对应的第二报文中的请求类型和待读取地址通过所述第一多路复用器存储至所述第一内存电路中,并触发所述第一内存电路将所述第二报文中的通道总线标识存储至第二内存电路中的步骤;
若所述第一数据量不小于所述第一阈值或所述第二数据量不小于所述第二阈值,则进入等待状态直至所述第一数据量小于所述第一阈值且所述第二数据量小于所述第二阈值。
在一种实现方式中,按照预设通道优先级的顺序调整第一多路复用器中导通的通道,包括:
根据各所述通道总线的序号及预设通道优先级确定当前传输所述访问请求的通道总线中优先级最高的目标通道总线;
按照第一预设通道优先级控制所述第一多路复用器中与所述目标通道总线对应的目标通道导通;
其中,各所述通道总线的序号与自身的优先级呈正相关或负相关。
在一种实现方式中,按照预设通道优先级的顺序调整第一多路复用器中导通的通道,包括:
按照第二预设通道优先级在首次接收到所述访问请求时,将当前传输所述访问请求的通道总线中序号最小的通道总线确定为目标通道总线;
控制所述第一多路复用器中与所述目标通道总线对应的第一目标通道导通;
在将所述目标通道总线对应的访问请求存储至所述第一内存电路之后,按照序号顺序轮询所述目标通道总线的上一个通道总线或下一个通道总线,并判断所述上一个通道总线或所述下一个通道总线是否传输所述访问请求;
若所述上一个通道总线或所述下一个通道总线传输所述访问请求,则将所述第一多路复用器中与所述上一个通道总线或所述下一个通道总线对应的第二目标通道导通。
在一种实现方式中,还包括:
接收中央处理器下发的优先级设置指令;
根据所述优先级设置指令将所述预设通道优先级设为所述第一预设通道优先级或所述第二预设通道优先级。
在一种实现方式中,接收中央处理器下发的优先级设置指令,包括:
获取所述中央处理器写入预设寄存器中的值;
根据所述优先级设置指令将所述预设通道优先级设为所述第一预设通道优先级或所述第二预设通道优先级,包括:
若所述预设寄存器中的值为第一数值时,则将所述预设通道优先级设为第一预设通道优先级;
若所述预设寄存器中的值为第二数值时,则将所述预设通道优先级设为第二预设通道优先级。
第四方面,本发明还提供了一种通道总线仲裁系统,应用于如上述所述的通道总线仲裁电路的控制电路,所述通道总线仲裁系统包括:
监测单元,用于监测所述多个通道总线发送的访问请求;
通道调整单元,用于按照预设通道优先级的顺序调整第一多路复用器中导通的通道;
请求处理单元,用于将所述访问请求通过所述第一多路复用器存储至第一内存电路中,以便待访问存储器按照存储的顺序依次处理所述第一内存电路中的多个所述访问请求。
第五方面,本发明还提供了一种通道总线仲裁装置,包括:
存储器,用于存储计算机程序;
处理器,用于在存储计算机程序时,实现如上述所述的通道总线仲裁方法的步骤。
第六方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的通道总线仲裁方法的步骤。
本发明提供了一种通道总线仲裁电路、加速装置、方法、系统、装置及介质,涉及数据处理领域,用于解决多个通道总线对待访问存储器进行访问时浪费时间周期的问题。该方案为各通道总线设置了优先级,控制电路按照预设通道优先级的顺序将各通道总线传输的访问请求通过第一多路复用器存储至第一内存电路,待访问存储器按照存储顺序依次处理访问请求,对多个通道总线发送的访问请求进行有效的协调和管理,可确保各访问请求均被处理,避免访问的混乱和冲突,避免在切换通道时导致的时钟周期浪费问题,减少待访问存储器的等待时间,有效利用待访问存储器的带宽,此外使用硬件电路来实现相比于软件逻辑而言还可以降低信号传输的延迟。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为现有的一种通道总线仲裁方案的示意图;
图2为本发明提供的一种通道总线仲裁电路的示意图;
图3为本发明提供的一种通道总线仲裁方法的流程图;
图4为本发明提供的一种通道总线仲裁方法的具体流程图;
图5为本发明提供的一种通道总线仲裁电路的应用场景示意图;
图6为本发明提供的一种访问请求的处理示意图。
具体实施方式
本发明的核心是提供一种通道总线仲裁电路、加速装置、方法、系统、装置及介质,对多个通道总线发送的访问请求进行有效的协调和管理,可确保各访问请求均被处理,避免访问的混乱和冲突,避免在切换通道时导致的时钟周期浪费问题,减少待访问存储器的等待时间,有效利用待访问存储器的带宽,此外使用硬件电路来实现相比于软件逻辑而言还可以降低信号传输的延迟。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
第一方面,如图2所示,本发明提供了一种通道总线仲裁电路,包括控制电路11、第一多路复用器12和第一内存电路13;
多个通道总线与第一多路复用器12的多个输入端一一对应连接,多个通道总线与多个加速功能单元一一对应连接,第一多路复用器12的输出端与第一内存电路13的一端连接,第一内存电路13的另一端与待访问存储器14连接,控制电路11与第一多路复用器12的控制端连接;
控制电路11用于监测各个通道总线发送的访问请求,并根据预设通道优先级的顺序调整第一多路复用器12中导通的通道,以将各个访问请求依次存储至第一内存电路13中,以便待访问存储器14按照存储的顺序依次处理第一内存电路13中的多个访问请求。
本实施例描述了一种通道总线仲裁电路,包括控制电路11、第一多路复用器12和第一内存电路13。这个仲裁电路可以适用于具有多个加速功能单元的FPGA,每个加速功能单元对应一个通道总线(通道总线可以为Avalon-MM总线)。多个通道总线通过第一多路复用器12连接到第一内存电路13,而第一内存电路13的另一端连接到待访问存储器14,控制电路11与第一多路复用器12的控制端连接。
在这个仲裁电路中,控制电路11用于监测各个通道总线发送的访问请求(如图1中的通道总线0访问请求、通道总线1访问请求、通道总线2访问请求),并根据预设通道优先级的顺序调整第一多路复用器12中导通的通道。这样,各个访问请求将依次存储至第一内存电路13中,以待访问存储器14按照存储的顺序依次处理。
通过设置预设通道优先级顺序,仲裁电路可以快速切换导通的通道,从而实现各个访问请求依次存储至内存电路中,提高通道访问效率。由于各个访问请求按照预设通道优先级顺序存储至内存电路中,可以减少切换通道导致的时钟周期浪费,提高整体FPGA计算性能。通过按照顺序存储访问请求至内存电路中,待访问存储器14可以按顺序处理这些请求,最大化外部存储器带宽的利用。综上,本发明提供的通道总线仲裁电路可以有效提高FPGA计算性能,提高存储器访问效率,降低时钟周期浪费,最大化外部存储器带宽的利用。
在一种实现方式中,通道总线仲裁电路还包括第二内存电路15和第二多路复用器16;第二内存电路15的一端与第一内存电路13连接,第二内存电路15的另一端与第二多路复用器16的控制端连接,第二多路复用器16的输入端与待访问存储器14连接,第二多路复用器16的多个输出端分别与多个通道总线一一对应连接;
第一内存电路13具体用于在访问请求为写请求时,将与写请求对应的第一报文存储至自身的存储空间中;在访问请求为读请求时,将与读请求对应的第二报文中的请求类型和待读取地址存储至自身的存储空间中,并将第二报文中的通道总线标识存储至第二内存电路15,第一报文包括请求类型、待写入地址和待写入数据;
第二内存电路15用于存储与读请求对应的通道总线的标识,并在从待访问存储器14中读取到第二报文对应的待读取数据时,控制第二多路复用器16中与通道总线标识对应的通道总线对应的通道导通,以将第二报文对应的待读取数据传输至与通道总线标识对应的通道总线。
进一步的,本实施例还包括第二内存电路15和第二多路复用器16,第一内存电路13用于存储写请求和读请求对应的报文信息,而第二内存电路15则用于存储与读请求对应的通道总线的标识,并在从待访问存储器14中读取到待读取数据时,控制第二多路复用器16中与通道总线标识对应的通道总线导通,将待读取数据传输至对应的通道总线。
具体来说,在多通道总线合并的情况下,若存在多个加速功能单元同时读取外部存储器的数据的需求,通过第二内存电路15存储和管理读请求对应的通道总线标识,可以有效地实现对不同通道之间的访问的控制和调度,而无需依赖于第一内存电路13的存储,这样就能够提高通道总线资源的利用效率,避免切换通道时的效率低下,从而提高了整体FPGA的计算性能。其次,第二内存电路15的存在使得在从待访问存储器14中读取到待读取数据时,能够根据存储的通道总线标识控制第二多路复用器16中对应的通道导通,将待读取数据传输至对应的通道总线,这样就能够实现了对读取到的数据进行及时而有效的分发,避免了多通道总线合并时的数据传输混乱和延迟。从而提高了外部存储器的带宽利用效率,进一步提高了整体FPGA的计算性能。
在一种实现方式中,第一报文还包括待写入数据的第一突发长度,通道总线仲裁电路还包括第一计数器17,第一计数器17一端与第一多路复用器12的输出端连接,第一计数器17的另一端与第一内存电路13连接,第一计数器17的输出端与控制电路11连接(图2中未画出第一计数器17的一端和另一端的连接关系,此外,需要说明的是,第一计数器17的一端、另一端和输出端为三个不同的端);
第一计数器17用于在通道总线发送的写请求有效时,将自身的第一计数值加一,并在第一计数值达到第一突发长度时,输出通道切换信号至控制电路11;
控制电路11具体用于在首次控制第一多路复用器12的通道导通时,根据预设通道优先级选择优先级最高的通道总线对应的通道导通,在非首次控制第一多路复用器12的通道导通时,根据通道切换信号及预设通道优先级调整第一多路复用器12中导通的通道,以将各个访问请求依次存储至第一内存电路13中,以便待访问存储器14按照存储的顺序依次处理第一内存电路13中的多个访问请求。
本实施例中,在第一报文的内容包括待写入数据的第一突发长度时。通道总线仲裁电路还引入了第一计数器17,并与通道总线、第一内存电路13和控制电路11相连接。第一计数器17的作用是在通道总线发送的写请求有效时,将自身的计数值加一,当计数值达到预设的第一突发长度时,计数器会向控制电路11输出通道切换信号。控制电路11根据通道切换信号和预设的通道优先级,来控制第一多路复用器12中导通的通道,在首次控制第一多路复用器12的通道导通时,控制电路11选择优先级最高的通道对应的通道导通,在非首次控制第一多路复用器12的通道导通时,控制电路11根据通道切换信号和预设通道优先级调整第一多路复用器12中导通的通道。这样,通过第一计数器17和控制电路11的协作,可以实现按照预设通道优先级进行通道选择和切换。当计数器达到第一突发长度时,控制电路11会触发通道切换,选择下一个优先级较高的通道进行访问。
使用第一计数器17可以提高通道的访问效率,当待写入数据的第一突发长度较大时,通过计数器的累加,可以在一次通信中连续传输多个数据,减少了通道切换的次数,从而提高了数据传输的效率;此外,通过通道优先级的调整,也能够确保高优先级的通道优先被选择和访问,进一步提高了系统的响应速度和整体性能。
在一种实现方式中,第二报文还包括待读取数据的第二突发长度,第一内存电路13还用于在访问请求为读请求时,将第二突发长度存储至第二内存电路15,第二内存还用于存储第二突发长度;
通道总线仲裁电路还包括第二计数器18,第二计数器18的第一端与第二多路复用器16的输入端连接,第二计数器18的第二端与第二内存电路15连接;
第二计数器18用于在第二多路复用器16的输入端输入的待读取数据的数据标志位有效时,将自身的第二计数值加一,并在第二计数值达到与第二突发长度时,将第二计数值清零。
本实施例中,第二报文包括待读取数据的请求类型、待读取地址以及待读取数据的第二突发长度时,通道总线仲裁电路中还引入了第二计数器18,第二计数器18连接在第二多路复用器16的输入端,用于计算待读取数据的突发长度,当输入端的数据标志位有效时,第二计数器18将其计数值加一,当计数值达到与第二突发长度相同时,表示已经传输完整个突发长度的数据,第二计数器18将计数值清零。
使用第二计数器18记录和控制突发数据的长度,可以确保在读取数据时只传输所需的数据量,避免不必要的数据传输,提高传输效率。同时,可以确保待读取数据在传输过程中能够完整、准确地被处理,同时避免数据传输过程中的混乱或错误。
第二方面,本发明还提供了一种加速装置,包括多个加速功能单元和多个通道总线,还包括上述的通道总线仲裁电路,多个加速功能单元通过和自身一一对应的通道总线与通道总线仲裁电路中的控制电路连接。本发明提供的加速装置,包括多个加速功能单元和多个通道总线,并且还包括了通道总线仲裁电路。其中,每个加速功能单元都通过一个独立的通道总线与通道总线仲裁电路连接。通道总线仲裁电路通过控制电路11和第一多路复用器12来有效地管理多个加速功能单元对待访问存储器14的访问请求。控制电路11会监测各个通道总线发送的访问请求,并根据预设通道优先级的顺序,调整第一多路复用器12中导通的通道,以便将各个访问请求依次存储至内存电路中,待访问存储器14可以按照存储的顺序依次处理这些访问请求。因此,该加速装置通过通道总线仲裁电路的有效管理,使得多个加速功能单元能够高效地与待访问存储器14进行通讯和数据处理,从而提高整个系统的性能和效率。
第三方面,如图3所示,本发明还提供了一种通道总线仲裁方法,应用于上述的通道总线仲裁电路中的控制电路,通道总线仲裁方法包括:
S11:监测多个通道总线发送的访问请求;
在通道总线仲裁方法中,首先需要监测来自多个通道总线的访问请求,也即系统需要能够实时检测并识别每个通道总线发送的访问请求的类型和优先级,通过监测这些请求,系统可以在接下来的步骤中进行相应的调整和处理,以确保有效且有序地处理每个访问请求。
S12:按照预设通道优先级的顺序调整第一多路复用器中导通的通道;
本步骤中,需要确定不同通道之间的优先级顺序。当监测到多个通道总线发送访问请求时,根据预先设定的通道优先级顺序,控制电路将调整第一多路复用器中的导通通道,以便将访问请求依次存储至第一内存电路中。本步骤的目的是确保在多个通道总线同时发送访问请求时,能够按照优先级顺序对这些请求进行处理,以便待访问存储器能够按存储顺序依次处理这些访问请求,这样可以有效地进行通道总线仲裁,避免不同通道之间的访问请求发生冲突,保证访问请求被按照预设的优先级顺序进行处理。
S13:将访问请求通过第一多路复用器存储至第一内存电路中,以便待访问存储器按照存储的顺序依次处理第一内存电路中的多个访问请求。
在通道总线仲裁方法中,本步骤的作用是将各个通道总线发送的访问请求按照顺序存储到第一内存电路中,该步骤是通过第一多路复用器将各个通道总线的访问请求导通到第一内存电路中实现的。具体来说,当控制电路根据预设通道优先级调整第一多路复用器中导通的通道后,各个通道总线发送的访问请求就会被导通到第一内存电路中,此时,第一内存电路会按照存储的顺序依次处理所存储的多个访问请求,这个顺序是由控制电路调整第一多路复用器中导通的通道确定的。通过这种方式,可以确保待访问存储器按照存储的顺序依次处理所述第一内存电路中的多个访问请求,从而提高访问效率和系统性能。
在上述实施例的基础上,如图4所示:
在一种实现方式中,通道总线仲裁电路还包括第二内存电路和第二多路复用器;第二内存电路的一端与第一内存电路连接,第二内存电路的另一端与第二多路复用器的控制端连接,第二多路复用器的输入端与待访问存储器连接,第二多路复用器的多个输出端分别与多个通道总线一一对应连接;
将访问请求通过第一多路复用器存储至第一内存电路中,包括:在访问请求为写请求时,将写请求对应的第一报文通过第一多路复用器存储至第一内存电路中,第一报文包括请求类型、待写入地址和待写入数据;在访问请求为读请求时,将读请求对应的第二报文中的请求类型和待读取地址通过第一多路复用器存储至第一内存电路中,并触发第一内存电路将第二报文中的通道总线标识存储至第二内存电路中。
本实施例描述了一种通道总线仲裁电路的结构,除了包括控制电路、第一多路复用器和第一内存电路之外,该电路还包括第二内存电路和第二多路复用器。在这种通道总线仲裁方法中,还引入了第二内存电路和第二多路复用器的处理部分。具体而言,当访问请求为写请求时,控制电路会将写请求对应的第一报文,包括请求类型、待写入地址和待写入数据,通过第一多路复用器存储到第一内存电路中。当访问请求为读请求时,控制电路会将读请求对应的第二报文中的请求类型和待读取地址通过第一多路复用器存储到第一内存电路中,并触发第一内存电路将第二报文中的通道总线标识存储到第二内存电路中。通过引入第二内存电路和第二多路复用器,这种通道总线仲裁电路可以实现更复杂的访问请求处理,可以更有效地管理和调度多个访问请求,提高通道总线的传输效率和整体性能。
在一种实现方式中,通道总线仲裁方法还包括:在从待访问存储器中读取到第二报文对应的待读取数据时,触发第二内存电路控制第二多路复用器中与通道总线标识对应的通道总线对应的通道导通;通过第一多路复用器中导通的通道将第二报文对应的待读取数据传输至与通道总线标识对应的通道总线。
本实施例中,当第一内存电路中存储了待访问存储器需要读取的数据时,触发第二内存电路进行操作,从待访问存储器中读取待读取数据;一旦待读取数据被取出,第二内存电路将触发控制第二多路复用器中与通道总线标识对应的通道导通;待读取数据将通过第一多路复用器中导通的通道被传输至与通道总线标识对应的通道总线,确保了待读取数据能够顺利传输至目标通道总线。这种实现方式的通道总线仲裁方法可以确保了在处理读取请求时,待读取数据能够被及时传输至目标通道总线,从而实现了通道总线仲裁的有效性和高效性。
在一种实现方式中,第一报文还包括待写入数据的第一突发长度,通道总线仲裁方法还包括:在访问请求为写请求时,判断第一突发长度是否为一;若为一,则将写请求对应的第一报文通过第一多路复用器存储至第一内存电路中,并在完成对待写入数据的写入后,进入监测多个通道总线发送的访问请求的步骤。
本实施例提到了一种特定实现方式,其中第一报文包括了待写入数据的第一突发长度。在通道总线仲裁方法中,当收到一个写请求时,首先会判断待写入数据的第一突发长度是否为一;如果第一突发长度为一,表明待写入数据的长度只有一个数据突发长度,即只有一个数据需要写入。如果第一突发长度为一,接下来会将写请求对应的第一报文通过第一多路复用器存储至第一内存电路中,并在完成对待写入数据的写入后,进入监测多个通道总线发送的访问请求的步骤。这意味着如果待写入数据的长度只有一个数据突发长度,就直接将写入请求存储至内存电路,并在写入完成后进行下一步操作。这种方式的设计可以更有效地处理短数据突发长度的写入请求,提高了通道总线仲裁方法的效率和灵活性。
在一种实现方式中,在访问请求为写请求时,判断第一突发长度是否为一之后,通道总线仲裁方法还包括:若第一突发长度不为一,则将写请求对应的第一报文通过第一多路复用器存储至第一内存电路中,并对第一多路复用器传输的有效的写请求进行计数,在有效的写请求的第一计数值达到第一突发长度时输出通道切换信号,并将第一计数值清零,进入监测多个通道总线发送的访问请求的步骤。
本实施例中,在访问请求为写请求时,判断第一突发长度是否为一之后,如果第一突发长度不为一,则将写请求对应的第一报文通过第一多路复用器存储至第一内存电路中,并对第一多路复用器传输的有效的写请求进行计数,在有效的写请求的第一计数值达到第一突发长度时输出通道切换信号,并将第一计数值清零,进入监测多个通道总线发送的访问请求的步骤。简单来说,这种实现方式是为了解决在通道总线进行数据传输时,如果每次只传输一个数据,则会导致传输效率低下。因此,当第一突发长度不为一时,需要对传输的有效的写请求进行计数,并在达到第一突发长度时输出通道切换信号,以便进行下一轮的数据传输。同时,也需要将第一计数值清零,以准备下一轮的计数,这样就可以实现高效的数据传输,提高通道总线的传输效率。
在一种实现方式中,通道总线仲裁电路还包括第一计数器,第一计数器一端与第一多路复用器连接,第一计数器的另一端与第一内存电路连接,第一计数器的输出端与控制电路连接;对第一多路复用器传输的有效的写请求进行计数,在有效的写请求的第一计数值达到第一突发长度时输出通道切换信号,并将第一计数值清零,进入监测多个通道总线发送的访问请求的步骤,包括:触发第一计数器在监测到第一多路复用器传输的写请求有效时,将自身的第一计数值加一;在第一计数值达到第一突发长度时,输出通道切换信号并将第一计数值清零,以进入监测多个通道总线发送的访问请求的步骤。
本实施例中,在通道总线仲裁电路中还包括第一计数器时,第一计数器一端连接通道总线,另一端连接第一内存电路,输出端连接控制电路(输出端与连接通道总线和第一内存电路的两端不是同一端)。在本实现方式中,第一计数器的作用是对第一多路复用器传输的有效的写请求进行计数。每当监测到第一多路复用器传输的写请求有效时,第一计数器就会将自身的计数值加一。当有效的写请求的计数值达到了预设的第一突发长度时,第一计数器会输出通道切换信号,并将计数值清零,这个通道切换信号会触发控制电路进入监测多个通道总线发送的访问请求的步骤,以确保通道总线能够高效地处理访问请求。
在一种实现方式中,第二报文还包括待读取数据的第二突发长度,通道总线仲裁方法还包括:在从待访问存储器中读取到待读取数据时,对第二多路复用器的输入端输入的待读取数据的数据标志位的有效个数进行计数,得到第二计数值;在第二计数值达到第二突发长度时,将第二计数值清零。
本实施例中,在第二报文包括待读取数据的第二突发长度时,当从待访问存储器中读取到待读取数据时,会对第二多路复用器的输入端输入的待读取数据的数据标志位的有效个数进行计数,得到第二计数值,当第二计数值达到第二突发长度时,将第二计数值清零。通俗地说,就是当进行一次读操作时,需要从存储器中读取一定数量的数据(即第二突发长度),并将这些数据通过通道总线传输给相应的加速功能单元。在数据传输过程中,需要对传输的数据进行标记,以便在传输完成后正确地将数据传输给相应的加速功能单元。因此,通道总线仲裁电路需要对传输的数据进行计数,以确保传输的数据数量正确,并且在传输完成后清空计数器,以便下一次数据传输。
在一种实现方式中,通道总线仲裁电路还包括第二计数器,第二计数器的第一端与第二多路复用器的输入端连接,第二计数器的第二端与第二内存电路连接;在从待访问存储器中读取到待读取数据时,对第二多路复用器的输入端输入的待读取数据的数据标志位的有效个数进行计数,得到第二计数值,包括:
在从待访问存储器中读取到待读取数据时,判断第二多路复用器的输入端输入的待读取数据的数据标志位是否有效;
若有效,则触发第二计数器的第二计数值加一;
在第二计数值达到第二突发长度时,将第二计数值清零,包括:
在第二计数值达到第二突发长度时,触发第二计数器将第二计数值清零。
本实施例描述了一种通道总线仲裁电路的实现方式,包括了第二计数器的作用和工作流程。该通道总线仲裁电路用于处理多个通道总线发送的访问请求,其中第二计数器与第二多路复用器和第二内存电路相关联。其工作流程如下:首先,在从待访问存储器中读取到待读取数据时,判断第二多路复用器的输入端输入的待读取数据的数据标志位是否有效,若有效,则触发第二计数器的第二计数值加一,这个过程保证了对每个有效的待读取数据进行计数;接着,在第二计数值达到第二突发长度时,将第二计数值清零,这一步是为了在达到特定突发长度时重置计数器,为下一轮计数做准备。综合来说,本实施例描述了通道总线仲裁电路中的第二计数器的作用和工作流程,用于有效地处理和控制多个通道总线的访问请求,从而提高总线的效率和稳定性。
在一种实现方式中,将写请求对应的第一报文通过第一多路复用器存储至第一内存电路中之前,还包括:判断第一内存电路中存储的第一数据量是否小于第一阈值,第一阈值小于第一内存电路的容量值;若第一数据量小于第一阈值,则进入将写请求对应的第一报文通过第一多路复用器存储至第一内存电路中的步骤;若第一数据量不小于第一阈值,则进入等待状态,直至第一内存电路中存储的第一数据量小于第一阈值。
本实施例中,为了优化通道总线的数据流量管理和存储器的处理效率。首先判断第一内存电路中存储的第一数据量是否小于第一阈值可以帮助控制数据流量,通过设定第一阈值,可以避免在内存电路中存储过多的数据,从而减少对于通道总线和存储器的压力;在第一数据量小于阈值时,才将写请求对应的第一报文存储至内存电路,这可以有效控制通道总线的负荷,避免数据拥堵和延迟。其次,这一步骤还可以提高存储器的处理效率;当存储的数据量小于阈值时,意味着存储器还有足够的处理能力来接收和处理新的写请求,这样可以确保存储器在处理请求时能够更及时和高效,避免因为负荷过大而导致性能下降和延迟增加的问题。综上,通过判断第一内存电路中存储的数据量是否小于预设的阈值,可以有效管理数据流量,减轻通道总线和存储器的负荷,提高整个系统的处理效率和性能稳定性,这使得通道总线仲裁电路在高负荷情况下能够更加稳定和高效地运行。
在一种实现方式中,在第一突发长度不为一时,判断第一内存电路中存储的第一数据量是否大于第一阈值,包括:在每次接收到写请求且第一计数值未达到第一突发长度时,判断第一内存电路中存储的第一数据量是否小于第一阈值;若在第一计数值未达到第一突发长度且第一内存电路中存储的第一数据量不小于第一阈值时,进入等待状态,直至第一内存电路中存储的第一数据量小于第一阈值。
本实施例是针对通道总线仲裁方法中的一种实现方式进行的详细描述。在该实现方式中,当第一突发长度不为一时,首先会判断第一内存电路中存储的第一数据量是否小于第一阈值,这一步是为了确保第一内存电路中的数据量不会超出其容量,从而保证系统的稳定性和可靠性。在每次接收到写请求且第一计数值未达到第一突发长度时,会判断第一内存电路中存储的第一数据量是否大于第一阈值。如果在这种情况下第一内存电路中存储的第一数据量不小于第一阈值,系统会进入等待状态,直至第一内存电路中存储的第一数据量小于第一阈值,这一步是为了避免数据量过大导致系统性能下降或者出现数据丢失的情况。通过对第一内存电路中存储的数据量进行限制和控制,可以有效地保护系统的稳定性和数据的完整性,避免了数据过量存储导致系统性能下降的问题,同时也减少了数据丢失的风险,提高了系统的可靠性和稳定性。
在一种实现方式中,在访问请求为读请求时,将读请求对应的第二报文中的请求类型和待读取地址通过第一多路复用器存储至第一内存电路中,并触发第一内存电路将第二报文中的通道总线标识存储至第二内存电路中之前,还包括:判断第一内存电路中存储的第一数据量是否小于第一阈值且第二内存电路中的第二数据量是否小于第二阈值,第一阈值小于第一内存电路的容量值,第二阈值小于第二内存电路的容量值;若第一数据量小于第一阈值且第二数据量小于第二阈值,则进入在访问请求为读请求时,将读请求对应的第二报文中的请求类型和待读取地址通过第一多路复用器存储至第一内存电路中,并触发第一内存电路将第二报文中的通道总线标识存储至第二内存电路中的步骤;若第一数据量不小于第一阈值或第二数据量不小于第二阈值,则进入等待状态直至第一数据量小于第一阈值且第二数据量小于第二阈值。
本实施例中,在处理读请求时,需要判断第一内存电路中存储的第一数据量是否小于第一阈值且第二内存电路中的第二数据量是否小于第二阈值。第一数据量是指第一内存电路中存储的数据量,而第二数据量是指第二内存电路中存储的数据量。判断这两个数据量是否小于预设的阈值,是为了确保在处理读请求时,内存电路中有足够的空间来存储新的请求信息,以确保系统的正常运行。通过判断第一内存电路和第二内存电路的存储数据量是否小于阈值,可以有效地控制内存电路的负载,避免因为数据量过大导致的内存溢出或系统卡顿的问题;当数据量接近阈值时,系统可以进入等待状态,直至数据量下降至安全范围内再继续处理请求,从而保障了系统的稳定性和可靠性;这种处理方式可以有效地避免内存电路因为负载过大而发生的故障,提高了系统的稳定性和可靠性。
图4中的具体流程为:控制电路为空闲状态时(具体而言,控制电路当前控制某个通道总线对应的通道导通时为非空闲状态);判断第一数据量是否达到第一阈值且第二数据量是否达到第二阈值,若是,则进入控制电路为空闲状态;若否,则接收访问请求(写请求或读请求);根据预设通道高优先级选择第一多路复用器中的通道导通。判断是否为写请求;若为写请求,判断第一突发长度是否为1,若不为1,判断第一突发长度是否等于第一计数器的计数值;如不等于,则判断第一内存电路的第一数据量是否达到第一阈值,如达到第一阈值,则控制电路进入等待状态,也即控制电路为空闲状态,如未达到第一阈值,则进入第一突发长度是否等于第一计数器的计数值的步骤;如不是写请求、或第一突发长度为1、或第一突发长度等于第一计数器的计数值,则判断第一数据量是否达到第一阈值且第二数据量是否达到第二阈值;若是,则控制电路进入空闲状态,也即等待;否则,将访问请求对应写入第一内存电路和第二内存电路,并重新进入接收访问请求的步骤。
在一种实现方式中,按照预设通道优先级的顺序调整第一多路复用器中导通的通道,包括:
按照第二预设通道优先级根据各通道总线的序号及预设通道优先级确定当前传输访问请求的通道总线中优先级最高的目标通道总线;
控制第一多路复用器中与目标通道总线对应的目标通道导通;
其中,各通道总线的序号与自身的优先级呈正相关或负相关。
在这种实现方式中,按照预设通道优先级的顺序调整第一多路复用器中导通的通道的具体实现方式为:通过比较各通道总线的序号和预设通道优先级来确定当前需要传输访问请求的通道总线中优先级最高的那条通道;一旦确定了目标通道总线,接下来就要控制第一多路复用器中与目标通道总线对应的目标通道导通,以确保访问请求能够顺利传输到内存电路中。在以上步骤中,各通道总线的序号与自身的优先级呈正相关或负相关,这意味着,通道的优先级可以根据其序号大小来确定,也可以根据相反的方式确定。这种设计可以根据实际需求和系统架构来灵活调整通道的优先级,以实现更加高效的通道总线仲裁方法。
在一种实现方式中,按照预设通道优先级的顺序调整第一多路复用器中导通的通道,包括:
按照第二预设通道优先级在首次接收到访问请求时,将当前传输访问请求的通道总线中序号最小的通道总线确定为目标通道总线;
控制第一多路复用器中与目标通道总线对应的第一目标通道导通;
在将目标通道总线对应的访问请求存储至第一内存电路之后,按照序号顺序轮询目标通道总线的上一个通道总线或下一个通道总线,并判断上一个通道总线或下一个通道总线是否传输访问请求;
若上一个通道总线或下一个通道总线传输访问请求,则将第一多路复用器中与上一个通道总线或下一个通道总线对应的第二目标通道导通。
本实施例中主要是关于按照预设通道优先级的顺序调整第一多路复用器中导通的通道。具体来说,当首次接收到访问请求时,将当前传输访问请求的通道总线中序号最小的通道总线确定为目标通道总线,然后控制第一多路复用器中与目标通道总线对应的第一目标通道导通。接下来,在将目标通道总线对应的访问请求存储至第一内存电路之后,按照序号顺序轮询目标通道总线的上一个通道总线或下一个通道总线,并判断上一个通道总线或下一个通道总线是否传输访问请求。如果上一个通道总线或下一个通道总线传输访问请求,则将第一多路复用器中与上一个通道总线或下一个通道总线对应的第二目标通道导通。
相比于按照各通道总线的序号(序号与优先级呈正相关或负相关)确定优先级,本实施例中的通过按照序号顺序轮询目标通道总线的上一个通道总线或下一个通道总线,并判断上一个通道总线或下一个通道总线是否传输访问请求的方式,可以更加灵活地处理多个通道总线的访问请求,这种方法可以确保访问请求在存储至第一内存电路之后,按照序号顺序依次处理,从而提高了通道总线的利用率和效率。例如有通道总线0、通道总线1、通道总线2、通道总线3,共4个通道,若在最初的时候控制第一多路复用器中与通道总线0对应的通道导通,则在将通道总线0对应的访问请求写入第一内存电路之后,若其余三个通道总线和通道总线0均具有访问请求,则下一个轮询通道高总线1、下一次轮询通道总线2,以此类推,使得各个通道总线的优先级相对均等。但是若按照上一个设置优先级的实施例而言,若通道总线的序号与优先级成反比,则通道总线0的优先级>通道总线1的优先级>通道总线2的优先级>通道总线3的优先级,若通道总线0一直传输访问请求,则一直控制通道总线0对应的第一多路复用器中的通道导通,并不会控制其余通道总线对应的通道导通。
具体地,如图5所示,一种应用场景为:通道总线仲裁电路为现场可编程门阵列中的电路,中央处理器通过PCIe(Peripheral Component Interconnect Express,高速串行计算机扩展总线标准)为其设置预设通道优先级,现场可编程门阵列连接两个待访问存储器。
图6中,若通道总线0传输了待写入数据的突发长度为3的写请求、和一个待读取数据的突发长度为4的读请求,通道总线1传输了一个待读取数据的突发长度为1的读请求,通道总线2传输了待写入数据的突发长度为1的写请求,则请求的处理顺序如图6的左上半部分所示,处理顺序为从上到下,读取出来的数据的顺序如图6右上部分所示,读出的数据的顺序为从下到上。
在一种实现方式中,还包括:
接收中央处理器下发的优先级设置指令;
根据所述优先级设置指令将所述预设通道优先级设为所述第一预设通道优先级或所述第二预设通道优先级。
在一种实现方式中,接收中央处理器下发的优先级设置指令,包括:
获取所述中央处理器写入预设寄存器中的值;
根据所述优先级设置指令将所述预设通道优先级设为所述第一预设通道优先级或所述第二预设通道优先级,包括:
若所述预设寄存器中的值为第一数值时,则将所述预设通道优先级设为第一预设通道优先级;
若所述预设寄存器中的值为第二数值时,则将所述预设通道优先级设为第二预设通道优先级。
第四方面,一种通道总线仲裁系统,应用于如上述的通道总线仲裁电路,通道总线仲裁系统包括:
监测单元,用于监测多个通道总线发送的访问请求;
通道调整单元,用于按照预设通道优先级的顺序调整第一多路复用器中导通的通道;
请求处理单元,用于将访问请求通过第一多路复用器存储至第一内存电路中,以便待访问存储器按照存储的顺序依次处理第一内存电路中的多个访问请求。
对于通道总线仲裁系统的介绍请参照上述实施例,本发明在此不再赘述第五方面,本发明还提供了一种通道总线仲裁装置,包括:
存储器,用于存储计算机程序;
处理器,用于在存储计算机程序时,实现如上述的通道总线仲裁方法的步骤。
对于通道总线仲裁装置的介绍请参照上述实施例,本发明在此不再赘述第六方面,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的通道总线仲裁方法的步骤。
对于计算机可读存储介质的介绍请参照上述实施例,本发明在此不再赘述。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的状况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (21)
1.一种通道总线仲裁电路,其特征在于,包括控制电路、第一多路复用器和第一内存电路;
多个通道总线与所述第一多路复用器的多个输入端一一对应连接,多个所述通道总线与多个加速功能单元一一对应连接,所述第一多路复用器的输出端与所述第一内存电路的一端连接,所述第一内存电路的另一端与待访问存储器连接,所述控制电路与所述第一多路复用器的控制端连接;
所述控制电路用于监测各个所述通道总线发送的访问请求,并根据预设通道优先级的顺序调整所述第一多路复用器中导通的通道,以将各个所述访问请求依次存储至所述第一内存电路中,以便所述待访问存储器按照存储的顺序依次处理所述第一内存电路中的多个所述访问请求。
2.如权利要求1所述的通道总线仲裁电路,其特征在于,所述通道总线仲裁电路还包括第二内存电路和第二多路复用器;所述第二内存电路的一端与所述第一内存电路连接,所述第二内存电路的另一端与所述第二多路复用器的控制端连接,所述第二多路复用器的输入端与所述待访问存储器连接,所述第二多路复用器的多个输出端分别与多个所述通道总线一一对应连接;
所述第一内存电路具体用于在所述访问请求为写请求时,将与所述写请求对应的第一报文存储至自身的存储空间中;在所述访问请求为读请求时,将与所述读请求对应的第二报文中的请求类型和待读取地址存储至自身的存储空间中,并将所述第二报文中的通道总线标识存储至所述第二内存电路,所述第一报文包括所述请求类型、待写入地址和待写入数据;
所述第二内存电路用于存储与所述读请求对应的通道总线的标识,并在从所述待访问存储器中读取到所述第二报文对应的待读取数据时,控制所述第二多路复用器中与所述通道总线标识对应的通道总线对应的通道导通,以将所述第二报文对应的待读取数据传输至与所述通道总线标识对应的通道总线。
3.如权利要求2所述的通道总线仲裁电路,其特征在于,所述第一报文还包括所述待写入数据的第一突发长度,所述通道总线仲裁电路还包括第一计数器,所述第一计数器一端与所述第一多路复用器的输出端连接,所述第一计数器的另一端与所述第一内存电路连接,所述第一计数器的输出端与所述控制电路连接;
所述第一计数器用于在所述通道总线发送的所述写请求有效时,将自身的第一计数值加一,并在所述第一计数值达到所述第一突发长度时,输出通道切换信号至所述控制电路;
所述控制电路具体用于在首次控制所述第一多路复用器的通道导通时,根据所述预设通道优先级选择优先级最高的通道总线对应的通道导通,在非首次控制所述第一多路复用器的通道导通时,根据所述通道切换信号及所述预设通道优先级调整所述第一多路复用器中导通的通道,以将各个所述访问请求依次存储至所述第一内存电路中,以便所述待访问存储器按照存储的顺序依次处理所述第一内存电路中的多个所述访问请求。
4.如权利要求2所述的通道总线仲裁电路,其特征在于,所述第二报文还包括所述待读取数据的第二突发长度,所述第一内存电路还用于在所述访问请求为读请求时,将所述第二突发长度存储至所述第二内存电路,所述第二内存还用于存储所述第二突发长度;
所述通道总线仲裁电路还包括第二计数器,所述第二计数器的第一端与所述第二多路复用器的输入端连接,所述第二计数器的第二端与所述第二内存电路连接;
所述第二计数器用于在所述第二多路复用器的输入端输入的待读取数据的数据标志位有效时,将自身的第二计数值加一,并在所述第二计数值达到与所述第二突发长度时,将所述第二计数值清零。
5.一种加速装置,其特征在于,包括多个加速功能单元和多个通道总线,还包括如权利要求1-4任一项所述的通道总线仲裁电路,多个所述加速功能单元通过和自身一一对应的通道总线与所述通道总线仲裁电路的控制电路连接。
6.一种通道总线仲裁方法,其特征在于,应用于如权利要求1-4任一项所述的通道总线仲裁电路中的控制电路,所述通道总线仲裁方法包括:
监测多个通道总线发送的访问请求;
按照预设通道优先级的顺序调整第一多路复用器中导通的通道;
将所述访问请求通过所述第一多路复用器存储至第一内存电路中,以便待访问存储器按照存储的顺序依次处理所述第一内存电路中的多个所述访问请求。
7.如权利要求6所述的通道总线仲裁方法,其特征在于,所述通道总线仲裁电路还包括第二内存电路和第二多路复用器;所述第二内存电路的一端与第一内存电路连接,所述第二内存电路的另一端与所述第二多路复用器的控制端连接,所述第二多路复用器的输入端与待访问存储器连接,所述第二多路复用器的多个输出端分别与多个所述通道总线一一对应连接;
将所述访问请求通过所述第一多路复用器存储至第一内存电路中,包括:
在所述访问请求为写请求时,将所述写请求对应的第一报文通过所述第一多路复用器存储至所述第一内存电路中,所述第一报文包括请求类型、待写入地址和待写入数据;
在所述访问请求为读请求时,将所述读请求对应的第二报文中的请求类型和待读取地址通过所述第一多路复用器存储至所述第一内存电路中,并触发所述第一内存电路将所述第二报文中的通道总线标识存储至第二内存电路中;
在从所述待访问存储器中读取到待读取数据时,触发所述第二内存电路控制所述第二多路复用器中与所述通道总线标识对应的通道总线对应的通道导通;
通过所述第一多路复用器中导通的通道将所述待读取数据传输至与所述通道总线标识对应的通道总线。
8.如权利要求7所述的通道总线仲裁方法,其特征在于,所述第一报文还包括所述待写入数据的第一突发长度,所述通道总线仲裁方法还包括:
在所述访问请求为写请求时,判断所述第一突发长度是否为一;
若为一,则将所述写请求对应的第一报文通过所述第一多路复用器存储至所述第一内存电路中,并在完成对所述待写入数据的写入后,进入监测所述多个通道总线发送的访问请求的步骤;
若所述第一突发长度不为一,则将所述写请求对应的第一报文通过所述第一多路复用器存储至所述第一内存电路中,并对所述第一多路复用器传输的有效的写请求进行计数,在所述有效的写请求的第一计数值达到所述第一突发长度时输出通道切换信号,并将所述第一计数值清零,进入监测所述多个通道总线发送的访问请求的步骤。
9.如权利要求8所述的通道总线仲裁方法,其特征在于,所述通道总线仲裁电路还包括第一计数器,所述第一计数器一端与所述第一多路复用器的输出端连接,所述第一计数器的另一端与所述第一内存电路连接,所述第一计数器的输出端与所述控制电路连接;对所述第一多路复用器传输的有效的写请求进行计数,在所述有效的写请求的第一计数值达到所述第一突发长度时输出通道切换信号,并将所述第一计数值清零,进入监测所述多个通道总线发送的访问请求的步骤,包括:
触发所述第一计数器在监测到所述第一多路复用器传输的写请求有效时,将自身的第一计数值加一;
在所述第一计数值达到所述第一突发长度时,输出通道切换信号并将所述第一计数值清零,以进入监测所述多个通道总线发送的访问请求的步骤。
10.如权利要求7所述的通道总线仲裁方法,其特征在于,所述第二报文还包括所述待读取数据的第二突发长度,所述通道总线仲裁方法还包括:
在从所述待访问存储器中读取到所述待读取数据时,对所述第二多路复用器的输入端输入的待读取数据的数据标志位的有效个数进行计数,得到第二计数值;
在所述第二计数值达到所述第二突发长度时,将所述第二计数值清零。
11.如权利要求10所述的通道总线仲裁方法,其特征在于,所述通道总线仲裁电路还包括第二计数器,所述第二计数器的第一端与所述第二多路复用器的输入端连接,所述第二计数器的第二端与所述第二内存电路连接;在从所述待访问存储器中读取到所述待读取数据时,对所述第二多路复用器的输入端输入的待读取数据的数据标志位的有效个数进行计数,得到第二计数值,包括:
在从所述待访问存储器中读取到所述待读取数据时,判断所述第二多路复用器的输入端输入的待读取数据的数据标志位是否有效;
若有效,则触发所述第二计数器的第二计数值加一;
在所述第二计数值达到所述第二突发长度时,将所述第二计数值清零,包括:
在所述第二计数值达到所述第二突发长度时,触发所述第二计数器将所述第二计数值清零。
12.如权利要求8所述的通道总线仲裁方法,其特征在于,将所述写请求对应的第一报文通过所述第一多路复用器存储至所述第一内存电路中之前,还包括:
判断所述第一内存电路中存储的第一数据量是否小于第一阈值,所述第一阈值小于所述第一内存电路的容量值;
若所述第一数据量小于所述第一阈值,则进入将所述写请求对应的第一报文通过所述第一多路复用器存储至所述第一内存电路中的步骤;
若所述第一数据量不小于所述第一阈值,则进入等待状态,直至所述第一内存电路中存储的所述第一数据量小于所述第一阈值。
13.如权利要求12所述的通道总线仲裁方法,其特征在于,在所述第一突发长度不为一时,判断所述第一内存电路中存储的第一数据量是否小于第一阈值,包括:
在每次接收到所述写请求且所述第一计数值未达到所述第一突发长度时,判断所述第一内存电路中存储的第一数据量是否小于第一阈值;
若在第一计数值未达到所述第一突发长度且所述第一内存电路中存储的所述第一数据量不小于所述第一阈值时,进入等待状态,直至所述第一内存电路中存储的所述第一数据量小于所述第一阈值。
14.如权利要求8所述的通道总线仲裁方法,其特征在于,在所述访问请求为读请求时,将所述读请求对应的第二报文中的请求类型和待读取地址通过所述第一多路复用器存储至所述第一内存电路中,并触发所述第一内存电路将所述第二报文中的通道总线标识存储至第二内存电路中之前,还包括:
判断所述第一内存电路中存储的第一数据量是否小于第一阈值且所述第二内存电路中的第二数据量是否小于第二阈值,所述第一阈值小于所述第一内存电路的容量值,所述第二阈值小于所述第二内存电路的容量值;
若所述第一数据量小于所述第一阈值且所述第二数据量小于所述第二阈值,则进入在所述访问请求为读请求时,将所述读请求对应的第二报文中的请求类型和待读取地址通过所述第一多路复用器存储至所述第一内存电路中,并触发所述第一内存电路将所述第二报文中的通道总线标识存储至第二内存电路中的步骤;
若所述第一数据量不小于所述第一阈值或所述第二数据量不小于所述第二阈值,则进入等待状态直至所述第一数据量小于所述第一阈值且所述第二数据量小于所述第二阈值。
15.如权利要求6-14任一项所述的通道总线仲裁方法,其特征在于,按照预设通道优先级的顺序调整第一多路复用器中导通的通道,包括:
按照第一预设通道优先级根据各所述通道总线的序号及预设通道优先级确定当前传输所述访问请求的通道总线中优先级最高的目标通道总线;
控制所述第一多路复用器中与所述目标通道总线对应的目标通道导通;
其中,各所述通道总线的序号与自身的优先级呈正相关或负相关。
16.如权利要求15所述的通道总线仲裁方法,其特征在于,按照预设通道优先级的顺序调整第一多路复用器中导通的通道,包括:
按照第二预设通道优先级在首次接收到所述访问请求时,将当前传输所述访问请求的通道总线中序号最小的通道总线确定为目标通道总线;
控制所述第一多路复用器中与所述目标通道总线对应的第一目标通道导通;
在将所述目标通道总线对应的访问请求存储至所述第一内存电路之后,按照序号顺序轮询所述目标通道总线的上一个通道总线或下一个通道总线,并判断所述上一个通道总线或所述下一个通道总线是否传输所述访问请求;
若所述上一个通道总线或所述下一个通道总线传输所述访问请求,则将所述第一多路复用器中与所述上一个通道总线或所述下一个通道总线对应的第二目标通道导通。
17.如权利要求16所述的通道总线仲裁方法,其特征在于,还包括:
接收中央处理器下发的优先级设置指令;
根据所述优先级设置指令将所述预设通道优先级设为所述第一预设通道优先级或所述第二预设通道优先级。
18.如权利要求17所述的通道总线仲裁方法,其特征在于,接收中央处理器下发的优先级设置指令,包括:
获取所述中央处理器写入预设寄存器中的值;
根据所述优先级设置指令将所述预设通道优先级设为所述第一预设通道优先级或所述第二预设通道优先级,包括:
若所述预设寄存器中的值为第一数值时,则将所述预设通道优先级设为第一预设通道优先级;
若所述预设寄存器中的值为第二数值时,则将所述预设通道优先级设为第二预设通道优先级。
19.一种通道总线仲裁系统,其特征在于,应用于如权利要求1-4任一项所述的通道总线仲裁电路中的控制电路,所述通道总线仲裁系统包括:
监测单元,用于监测所述多个通道总线发送的访问请求;
通道调整单元,用于按照预设通道优先级的顺序调整第一多路复用器中导通的通道;
请求处理单元,用于将所述访问请求通过所述第一多路复用器存储至第一内存电路中,以便待访问存储器按照存储的顺序依次处理所述第一内存电路中的多个所述访问请求。
20.一种通道总线仲裁装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于在存储计算机程序时,实现如权利要求6-18任一项所述的通道总线仲裁方法的步骤。
21.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求6-18任一项所述的通道总线仲裁方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410230114.9A CN117807000B (zh) | 2024-02-29 | 2024-02-29 | 通道总线仲裁电路、加速装置、方法、系统、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410230114.9A CN117807000B (zh) | 2024-02-29 | 2024-02-29 | 通道总线仲裁电路、加速装置、方法、系统、装置及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117807000A true CN117807000A (zh) | 2024-04-02 |
CN117807000B CN117807000B (zh) | 2024-05-28 |
Family
ID=90430544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410230114.9A Active CN117807000B (zh) | 2024-02-29 | 2024-02-29 | 通道总线仲裁电路、加速装置、方法、系统、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117807000B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118072807A (zh) * | 2024-04-18 | 2024-05-24 | 杭州长川科技股份有限公司 | 一种多通道仲裁方法、系统及介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070214302A1 (en) * | 2006-03-13 | 2007-09-13 | Fujitsu Limited | Data processing device with mechanism for controlling bus priority of multiple processors |
US20080034139A1 (en) * | 2006-08-01 | 2008-02-07 | Freescale Semiconductor, Inc. | Memory access controller and method thereof |
CN101510181A (zh) * | 2009-03-19 | 2009-08-19 | 北京中星微电子有限公司 | 一种总线仲裁方法和总线仲裁装置 |
CN112100090A (zh) * | 2020-09-16 | 2020-12-18 | 浪潮(北京)电子信息产业有限公司 | 数据访问请求处理方法、装置、介质及内存映射控制器 |
CN114911727A (zh) * | 2022-05-26 | 2022-08-16 | 上海美仁半导体有限公司 | 总线仲裁方法和装置、计算机可读存储介质及主控芯片 |
CN115858430A (zh) * | 2023-02-02 | 2023-03-28 | 摩尔线程智能科技(北京)有限责任公司 | 图形处理器的访存优化方法、设备及计算机可读介质 |
-
2024
- 2024-02-29 CN CN202410230114.9A patent/CN117807000B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070214302A1 (en) * | 2006-03-13 | 2007-09-13 | Fujitsu Limited | Data processing device with mechanism for controlling bus priority of multiple processors |
US20080034139A1 (en) * | 2006-08-01 | 2008-02-07 | Freescale Semiconductor, Inc. | Memory access controller and method thereof |
CN101510181A (zh) * | 2009-03-19 | 2009-08-19 | 北京中星微电子有限公司 | 一种总线仲裁方法和总线仲裁装置 |
CN112100090A (zh) * | 2020-09-16 | 2020-12-18 | 浪潮(北京)电子信息产业有限公司 | 数据访问请求处理方法、装置、介质及内存映射控制器 |
CN114911727A (zh) * | 2022-05-26 | 2022-08-16 | 上海美仁半导体有限公司 | 总线仲裁方法和装置、计算机可读存储介质及主控芯片 |
WO2023226497A1 (zh) * | 2022-05-26 | 2023-11-30 | 上海美仁半导体有限公司 | 总线仲裁方法和装置、计算机可读存储介质及主控芯片 |
CN115858430A (zh) * | 2023-02-02 | 2023-03-28 | 摩尔线程智能科技(北京)有限责任公司 | 图形处理器的访存优化方法、设备及计算机可读介质 |
Non-Patent Citations (3)
Title |
---|
唐承佩;周建;倪江群;: "多端共访存储器的竞争仲裁模块的实现研究", 电子测量与仪器学报, no. 02, 15 April 2008 (2008-04-15) * |
王会敏;张遂南;: "多通道实时CAN总线模拟器设计", 现代电子技术, no. 22, 15 November 2009 (2009-11-15) * |
赵涛;郭猛;顾亚浏;章阳;: "基于FPGA的多通道数据采集控制器设计与实现", 计算机工程, no. 06, 15 June 2017 (2017-06-15) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118072807A (zh) * | 2024-04-18 | 2024-05-24 | 杭州长川科技股份有限公司 | 一种多通道仲裁方法、系统及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117807000B (zh) | 2024-05-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN117807000B (zh) | 通道总线仲裁电路、加速装置、方法、系统、装置及介质 | |
US8850085B2 (en) | Bandwidth aware request throttling | |
CN107480078B (zh) | 一种总线带宽分配方法、装置及芯片 | |
US5471618A (en) | System for classifying input/output events for processes servicing the events | |
EP1895430B1 (en) | Arbiter, crossbar, request selection method and information processing device | |
US20120042105A1 (en) | Bus arbitration apparatus | |
CN109408243B (zh) | 一种基于rdma的数据处理方法、装置和介质 | |
CN111061570B (zh) | 一种图像计算请求处理方法、装置及终端设备 | |
EP3326347B1 (en) | Method and system for usb 2.0 bandwidth reservation | |
EP1970815A1 (en) | Data transfering apparatus and information processing system | |
CN116724287A (zh) | 一种内存控制方法及内存控制装置 | |
KR20020008955A (ko) | 버스 시스템 및 그 실행 순서 조정방법 | |
KR102303424B1 (ko) | 랜덤 액세스 메모리를 포함하는 하나 이상의 처리 유닛을 위한 직접 메모리 액세스 제어 장치 | |
CN117389766A (zh) | 消息的发送方法及装置、存储介质及电子装置 | |
EP4425334A1 (en) | Storage control method, storage controller, storage chip, network card, and readable medium | |
EP1895429B1 (en) | Transmission control device and transmission control method | |
JP2009251652A (ja) | マルチコアシステム | |
CN114296918B (zh) | 资源分配系统及方法 | |
CN107085557A (zh) | 直接存储器访问系统以及相关方法 | |
US11916792B2 (en) | Vehicle communication control device and method | |
CN115269467B (zh) | 一种总线仲裁的方法、装置、存储介质及电子设备 | |
CN118377743B (zh) | 输入请求的仲裁方法、装置、设备、介质及产品 | |
CN117707796B (zh) | 资源管理方法、装置、电子设备以及存储介质 | |
CN116185915B (zh) | 总线调度方法、装置及设备、介质和基板管理控制芯片 | |
CN115412515A (zh) | 一种基于fpga的存储空间分配方法 |
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 |