CN115277644A - 一种总线数据传输系统、方法、设备及存储介质 - Google Patents
一种总线数据传输系统、方法、设备及存储介质 Download PDFInfo
- Publication number
- CN115277644A CN115277644A CN202210908098.5A CN202210908098A CN115277644A CN 115277644 A CN115277644 A CN 115277644A CN 202210908098 A CN202210908098 A CN 202210908098A CN 115277644 A CN115277644 A CN 115277644A
- Authority
- CN
- China
- Prior art keywords
- address
- message
- cache
- packet
- aggregation
- 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.)
- Pending
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉一种总线数据传输系统、方法、设备及存储介质。所述系统包括多个缓存空间、空闲地址池、地址动态分配模块聚合条件判断模块、聚合数据搬移模块,地址动态分配模块用于在当前报文ID号未分配地址段或接收到新地址段申请时从所有空闲地址段中申请新的地址段并更新索引表,在当前报文ID号已分配地址段且未接收到新地址段申请时将输出报文包写入与匹配的地址段对应的缓存空间中;聚合条件判断模块在确认达到聚合阈值时生成聚合信号和新地址段申请、否则不生成聚合信号和新地址段申请;聚合数据搬移模块根据聚合信号将输出报文包搬移到总线上,并在完成搬移后释放地址段。本发明的方案可以大大提高数据传输性能、降低复杂度、减小资源占用。
Description
技术领域
本发明涉及数据传输领域,尤其涉及一种总线数据传输系统、方法、设备及存储介质。
背景技术
近些年来随着片上系统的蓬勃发展,总线上挂载的设备呈指数级别增长,对总线的要求日益增大。目前,解决总线调度能力主要有两个方式:一个方式是设法提高总线带宽,如果PCIE/AMBA各代协议,新版本协议与旧版本的最大区别就是,提高了总线带宽;另一个方式是提高总线调度效率。如果总线上的设备能将相同类型的消息或报文进行聚合,在一个时间段内连续传输,那么传输效率必然比原子化的单报文传输效率有大幅提高。因此,如何对报文进行高效聚合,就成为我们面临的一个挑战。我们需要一种高效的聚合方法,实现对模块内报文的及时处理和传输,聚合过程尽量不能影响正常的报文处理,需要在报文连续输入情况下,依然能正常、无延迟的输出聚合结果。
由于聚合过程中,模块接收的报文无法发送至总线,所以需要在模块内部建立缓存,防止数据丢失。完成报文聚合首先需要确定聚合条件,聚合条件一般是直接包含在报文信息中的,如报文ID号或报文类型。对于聚合条件相同的报文,我们将其放在缓存模块的同一个地址段。在同一个地址段内的报文,我们按照写入的先后顺序,相邻存储。此外还需要设计一个模块用于记录每个聚合条件已经存储了几个报文。当相同聚合条件的报文存储数量大于搬移阈值时,给总线发送DMA搬移请求,总线会一次性将符合该条件的全部报文通过总线搬移到后级处理模块,进一步处理。
目前传统的聚合模块一般使用乒乓缓存,请参照图1所示,报文按照顺序输入聚合模块,本次传输有8个报文,一次命名为DATA0~DATA7。假设对于本模块输入的报文,聚合条件是ID相同,且ID范围是ID0~ID7。那么根据乒乓缓存的基本原理。需要有16个地址段用于存储报文,其中缓存A、缓存B都有对应ID0~ID7的报文存储地址段,分别记为A0~A7、B0~B7。A0/B0地址空间互为备份,用于保证数据搬移期间的存储连续性。A2/B2~A7/B7地址空间依次类推。图1中第一个数据DATA0对应的ID为0,那么就将该报文数据放在缓存A的地址段A0中。第二个数据DATA1对应的ID为5,那么就将该报文数据放在缓存A的地址段A5中。第三个数据DATA2的ID依然为5,将该报文数据放在缓存A的地址段A5中,紧挨着DATA1储存。剩余数据以此类推。假设聚合阈值为2,即:相同ID的报文,最多只能缓存两个,如果超出两个,就需要将缓存报文通过总线搬移到后级模块。故当DATA5进入聚合模块时,地址段A0中已经存储了两个报文,无法再存储第三个。此时,一方面将DATA5存储到缓存B的地址段B0。另一方面,缓存A的地址段A0达到聚合条件,向外部模块发送地址搬移信号。当搬移完成后,地址段A0的数据已经发送至后级模块,可以在地址段B0存满时,用来接着存储数据。
结合图1可以看出,传统总线数据聚合时缓存大小为待聚合报文最大值的两倍,虽然这样能有效防止读写冲突,但是乒乓缓存策略也极大增加了系统资源占用,例如当报文包ID号为256个时,传输总线数据时为了实现聚合功能需要缓存的数量高达512个,因此亟需改进。
发明内容
有鉴于此,有必要针对传统聚合策略的不足之处,从减少聚合判断时间、减少聚合使用缓存大小两方面着手,提供结构复杂度低、延时低、资源小的一种总线数据传输系统、方法、设备及存储介质。
根据本发明的第一方面,提供了一种总线数据传输系统,所述系统包括:
多个缓存空间,其中,每个缓存空间对应不同的地址段,且缓存空间的总数量介于所有报文ID号总数量一倍和二倍之间;
空闲地址池,用于根据各个缓存空间对应的地址段的占用情况确定空闲地址段;
地址动态分配模块,用于维护指示已处理报文ID号与地址段对应关系的索引表,以及将接收到的输入报文包对应的当前报文ID号与所述索引表进行匹配,以确定当前报文ID号是否已分配地址段,在当前报文ID号未分配地址段或接收到新地址段申请时,从所述空闲地址池管理的所有空闲地址段中为当前报文ID号申请新的地址段并更新所述索引表,在当前报文ID号已分配地址段且未接收到新地址段申请时,将接收到的输入报文包对应的输出报文包写入与当前报文ID号匹配的地址段对应的缓存空间中;
聚合条件判断模块,用于判断接收到的输入报文包对应的当前报文ID号是否达到聚合阈值,在确认达到聚合阈值时生成聚合信号和新地址段申请,在确认未达到聚合阈值时不生成聚合信号和新地址段申请;
聚合数据搬移模块,用于在接收到聚合条件判断模块生成的聚合信号时将当前报文ID号对应的存储地址段内存储的输出报文包搬移到总线上,并在接收到总线搬移结束信号时将当前报文ID号对应的存储地址添加到所述空闲地址池以释放地址段。
在一些实施例中,所述系统还包括报文特征提取模块和处理模块,所述报文特征提取模块包括:第一缓存和第二缓存;
所述第一缓存用于缓存输入报文包的完整报文数据,所述第二缓存用于缓存输入报文包中参与耦合计算的关键数据;
所述地址动态分配模块和所述聚合条件判断模块均从所述第一缓存中获取输入报文包;
响应于所述第二缓存中存入数据,则所述处理模块基于所述第一缓存和所述第二缓存中的数据执行并行运算以生成输出报文包;
响应于所述第二缓存没有存入数据,则输出报文包与输入报文包相同。
在一些实施例中,所述第二缓存中参与耦合计算的关键数据为对完整报文数据执行耦合计算所需时长超过一个时钟周期对应的报文数据。
在一些实施例中,总线为AMBA总线或PCIe总线。
在一些实施例中,所有报文ID号的总数量为256个,缓存空间的总数量为288个,所述聚合阈值为16个。
在一些实施例中,总线数据用于固态硬盘读写控制。
根据本发明的第二方面,提供了一种总线数据传输方法,所述方法包括:
设置多个缓存空间,其中,每个缓存空间对应不同的地址段,且缓存空间的总数量介于所有报文ID号总数量的一倍和二倍之间;
设置空闲地址池以根据各个缓存空间对应的地址段的占用情况确定空闲地址段;
设置地址动态分配模块维护指示已处理报文ID号与地址段对应关系的索引表,并将接收到的输入报文包对应的当前报文ID号与所述索引表进行匹配以确定当前报文ID号是否已分配地址段;
利用聚合条件判断模块判断接收到的输入报文包对应的当前报文ID号是否达到聚合阈值,在确认达到聚合阈值时生成聚合信号和新地址段申请,在确认未达到聚合阈值时不生成聚合信号和新地址段申请;
响应于当前报文ID号未分配地址段或接收到新地址段申请,则利用地址动态分配模块从所述空闲地址池管理的所有空闲地址段中为当前报文ID号申请新的地址段并更新所述索引表;
响应于当前报文ID号已分配地址段且未接收到新地址段申请,则地址动态分配模块将接收到的输入报文包对应的输出报文包写入与当前报文ID号匹配的地址段对应的缓存空间中;
利用聚合数据搬移模块在接收到聚合条件判断模块生成的聚合信号时将当前报文ID号对应的存储地址段内存储的输出报文包搬移到总线上,并在接收到总线搬移结束信号时,将当前报文ID号对应的存储地址添加到所述空闲地址池以释放地址段。
在一些实施例中,所述方法还包括:
设置包括第一缓存和第二缓存的报文特征提取模块以及处理模块;
将输入报文包的完整报文数据缓存到所述第一缓存中,将输入报文包中参与耦合计算的关键数据缓存到所述第二缓存中;
所述地址动态分配模块和所述聚合条件判断模块均从所述第一缓存中获取输入报文包;
响应于所述第二缓存中存入数据,则所述处理模块基于所述第一缓存和所述第二缓存中的数据执行并行运算以生成输出报文包;
响应于所述第二缓存没有存入数据,则输出报文包与输入报文包相同。
根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的总线数据传输方法。
根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的总线数据传输方法。
上述一种总线数据传输系统,采用动态地址分配机制代替传统评判缓存机制,将缓存空间数量设置成略大于所有报文ID号的总数量,增加空闲地址池和动态地址分配模块,通过采用动态地址分配机制来替代传统的乒乓存储架构,可以大大提高数据传输性能、降低复杂度、减小资源占用。
此外,本发明还提供了一种总线数据传输方法、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为传统采用乒乓缓存机制总线数据传输系统示意图;
图2为本发明一个实施例提供的一种总线数据传输系统结构示意图;
图3为具有数据处理功能的总线数据集合工作流程示意图;
图4A为只有聚合功能时ID号在报文起始的数据延迟示意图;
图4B为只有聚合功能时ID号在报文末尾的数据延迟示意图;
图5为传统总线数据传输过程中对存在数据处理情况的报文数据聚合不做优化处理的延迟示意图;
图6为传统总线数据传输过程中对存在数据处理情况的报文数据聚合采用流水化处理的延迟示意图;
图7为本发明一个实施例提供总线数据传输过程中对存在数据处理情况采用报文特征提取后的延迟示意图;
图8与图7对应的另一种总线数据传输系统的结构示意图;
图9为本发明一个实施例提供的一种总线数据传输方法的流程示意图;
图10为本发明另一个实施例中计算机设备的内部结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
请参照图2所示,本发明采用动态地址分配机制代替传统评判缓存机制提供一种总线数据传输系统,具体来说包括以下结构:
多个缓存空间10,其中,每个缓存空间对应不同的地址段,且缓存空间的总数量介于所有报文ID号总数量一倍和二倍之间;
空闲地址池20,用于根据各个缓存空间对应的地址段的占用情况确定空闲地址段;
地址动态分配模块30,用于维护指示已处理报文ID号与地址段对应关系的索引表,以及将接收到的输入报文包对应的当前报文ID号与所述索引表进行匹配,以确定当前报文ID号是否已分配地址段,在当前报文ID号未分配地址段或接收到新地址段申请时,从所述空闲地址池20管理的所有空闲地址段中为当前报文ID号申请新的地址段并更新所述索引表,在当前报文ID号已分配地址段且未接收到新地址段申请时,将接收到的输入报文包对应的输出报文包写入与当前报文ID号匹配的地址段对应的缓存空间中;
聚合条件判断模块40,用于判断接收到的输入报文包对应的当前报文ID号是否达到聚合阈值,在确认达到聚合阈值时生成聚合信号和新地址段申请,在确认未达到聚合阈值时不生成聚合信号和新地址段申请;
聚合数据搬移模块50,用于在接收到聚合条件判断模块40生成的聚合信号时将当前报文ID号对应的存储地址段内存储的输出报文包搬移到总线上,并在接收到总线搬移结束信号时将当前报文ID号对应的存储地址添加到所述空闲地址池20以释放地址段。
上述一种总线数据传输系统,采用动态地址分配机制代替传统评判缓存机制,将缓存空间数量设置成略大于所有报文ID号的总数量,增加空闲地址池和动态地址分配模块,通过采用动态地址分配机制来替代传统的乒乓存储架构,可以大大提高数据传输性能、降低复杂度、减小资源占用。
在一些实施例中,请结合图8所示,所述系统还包括报文特征提取模块60和处理模块(图中未示出),所述报文特征提取模60块包括:第一缓存(即数据FIFO)和第二缓存(即INFO FIFO);
所述第一缓存用于缓存输入报文包的完整报文数据,所述第二缓存用于缓存输入报文包中参与耦合计算的关键数据;
所述地址动态分配模块30和所述聚合条件判断模块40均从所述第一缓存中获取输入报文包;
响应于所述第二缓存中存入数据,则所述处理模块基于所述第一缓存和所述第二缓存中的数据执行并行运算以生成输出报文包;
响应于所述第二缓存没有存入数据,则输出报文包与输入报文包相同。
在一些实施例中,所述第二缓存中参与耦合计算的关键数据为对完整报文数据执行耦合计算所需时长超过一个时钟周期对应的报文数据。
在一些实施例中,总线为AMBA总线或PCIe总线。
在一些实施例中,所有报文ID号的总数量为256个,缓存空间的总数量为288个,所述聚合阈值为16个。
在一些实施例中,总线数据用于固态硬盘读写控制。
在又一个实施例中为了便于理解本发明的方案,请再次结合图2所示,假设对于输入的报文,聚合条件是ID相同,且ID号范围是ID0~ID7,基于动态缓存机制,缓存数量只需要略多于最大ID数量,例如缓存数量设置成9个,此外需要增加一个空闲地址池,用于指示当前报文的存储地址。将传统评判缓存对应的“静态地址分配模块”改为“动态地址分配模块”,动态地址分配模块内部维护一张索引表,索引表用于指示ID号和存储地址之间的对应关系,当该总线数据传输系统的运行原理如下:
首次运行时,空闲地址池中包含全部地址段(A0~A9)。每次收到数据后,读取报文ID号,然后去索引表查找ID号对应的存储地址,查找结果共有如下几种情况:
(1)如果该ID尚未分配存储地址段,则从空闲地址池中取一个作为该ID的地址段;
(2)如果该ID已分配存储地址段,且地址段内存储报文数未达到聚合阈值,继续向该地址中存储报文;
(3)如果该ID已分配存储地址段,且地址段内存储报文数已经达到聚合阈值,此时需要一方面向总线发起搬移请求,一方面向空闲地址池申请新的存储地址段,将当前报文存储到新地址段,并同步更新索引表。
需要注意的是,当搬移请求发起后,对应的地址段不能立即释放回空闲地址池中,需要等待总线响应,回复“数据搬移完毕”信号后,再释放该地址段到空闲地址池中。由以上分析可知,使用本实施例的总线数据传输系统,可以在只提供聚合功能时有效降低聚合使用的缓存大小,减小资源占用。
虽然采用动态地址分配的设计实现了聚合时存储资源最省,但不能保证得聚合时间最短,如果聚合模块不但承担了聚合发送功能,而且承担报文数据处理的功能,如何能让聚合时间最短、模块复杂度最低,从而不影响系统的性能,这也是本发明方案需要解决的另一个问题。
本发明提供了另一种总线数据传输系统采用提取报文关键信息、并行化处理以保证报文在最短时间内处理完成。例如图3所示,其代表了一个示例的聚合模块,假设规定该模块需要实现如下功能:
(1)对报文中某个域段,检索出报文对应ID号,再将ID号送入图2中的“动态地址分配模块”,获得存储地址,相同ID号的报文进行聚合操作;
(2)根据应用场景,可能承担数据处理功能。
首先,从一种简单情况入手,看模块不承担数据处理功能时,数据延时应该如何做到最小。不妨以图4A和图4B分别表示的两种数据结构为例:
图4A代表ID号在一包报文起始位置时的情况。此时由于在T0时刻就能开始进行地址分配,故从一包报文输入到输出的总延迟=报文0读取延迟+地址0分配延迟。在这种情况下,处理后两包报文的输出间隔一致,均为8个时钟周期。图4B代表ID号在一包报文结尾位置时的情况。此时由于在T7时刻才能开始进行地址分配,故从一包报文输入到输出的总延迟=报文0读取延迟+报文0写入延迟+地址0分配延迟-1。在这种情况下,处理后两包报文的输出间隔一致,均为8个时钟周期。分析图4A和图4B,可知,虽然二者输出延迟不同,但处理后两包报文的输出间隔都为8个时钟周期,与报文输入时钟周期一致。在硬件结构上,通常称之为“能进行流水处理”,即:报文输出速度与输入速度一致,处理过程不会影响报文的正常输入。如果后级处理模块对处理延迟敏感,可以通过改变数据结构减小总延迟,即将报文包含地址查表信息的元素从D0-7挪至D0-0元素。如果对延迟不敏感,那么图4A和图4B均能以接近最高效率的方式完成报文聚合动作。
其次,再看下如果聚合模块除了聚合功能外,还要承担报文数据处理功能,应该如何做,才能让处理延迟达到最小。因为实际的数据处理方法多样,需要指定一种数据处理方式进行讨论。数据处理可分为耦合和非耦合两种类型,非耦合指的是数据处理过程与前后元素无关,只和处理算法有关。此时每个元素的处理延迟是固定的。非耦合数据处理相对简单,本发明方案不予讨论。本方案只讨论耦合情况下的数据处理。假设一个实际工程中的报文处理算法,如下所示:
(1)报文元素D0-0和报文元素D0-1生成新报文元素E0-0;
(2)报文元素D0-1和报文元素D0-2生成新报文元素E0-1;
(3)报文元素D0-2和报文元素D0-3生成新报文元素E0-2;
(4)报文元素D0-6需要通过算法处理得到报文元素P0-6,处理延迟为3个时钟周期;元素F0-6和D0-0、D0-1一起,达到了新报文元素E0-3;
(5)报文元素D0-7中的元素,作为图2中“动态地址分配模块”的输入,得到新报文的存储地址;获得地址需要4个时钟周期。
图5展示了使用上述算法处理1包报文数据的过程。注意图5中D0-0表示第0包原始报文的第0个元素,E0-2表示第0包输出报文的第2个元素,A0表示查询到的地址段首地址,A0_Offset表示当前元素在A0中存储使用的偏移地址。其余依次类推。
如图5所示,展示了耦合情况下的处理延迟。图中只展示了1包报文的处理情况。可见从原始报文输入到新报文输出,报文0总延迟=MAX(报文0数据处理延迟,(6+报文0地址分配延迟))+输出延迟(4)。其中,MAX(A,B)代表取A、B中的最大值。由于上述处理延迟长达16个时钟周期(2包报文输入时间),可知:如果报文1在T8~T14时刻输入本模块,此时报文0处理还未完成。为不发生冲突,有两种方法:
(1)缓存报文1,等待报文0处理完毕后再处理报文1;
(2)对报文进行流水处理。
显然第(1)种方法会降低模块对报文的处理速度,因此本方案不考虑;如果本模块只对报文进行流水化处理那么模块结构会变为图6所示。如图6所示,为进行流水化处理,需要开辟4个缓存空间。缓存空间编号为缓存0~缓存3。如6图所示,当报文0计算获得新元素E0-0时,将其数值缓存到缓存0中;当报文1到来时,使用相同处理逻辑处理报文1,将结果E1-0寄存。当新元素E0-0被输出后,更新缓存0的数据为E1-0。其余几个缓存依次类推。在这种情况下,处理延迟为16个时钟周期,处理效率也提高了1倍。上面的方式虽然解决了性能问题,但是处理方法比较复杂;同时,这种处理方法与报文的数据结构耦合性很高,报文一旦发生变化,需要对硬件结构需要大量修改,不具备灵活性。因此,本实施例采用报文特征提取,使用信息FIFO的方式解决该问题。
使用报文特征提取的模块结构如图7所示。在这种模式下,增加了两个缓存:INFOFIFO和数据FIFO。其中INFO FIFO缓存报文特征提取的关键信息,用于降低处理延迟,数据FIFO缓存一包完整报文数据。经分析,元素D0-6和D0-7存在较大处理延迟,故将这两个元素提取到INFO0。在T7时刻,由于INFO0中已经缓存了D0-6和D0-7,因此,D0-6的处理、D0-7请求存储地址动作,能和其他延迟较小的报文处理动作同时进行,这种并行化处理方式降低了总延迟。虽然报文0是从T7时刻开始真正处理的,但是依然和图6一样,在T15时刻完成了对报文1的全部处理和输出。同时,这种处理方式结构较为简单,和报文的数据结构耦合度低。
在实际使用时通过增加“报文特征提取”模块,来实现图7的处理过程。在报文输入时,同步将报文数据缓存到数据FIFO中,将报文特征提取的关键信息(也就是处理延迟较大的元素)缓存到INFO FIFO中,后级的“聚合条件判断模块”通过INFO FIFO和数据FIFO的数据,来减小数据处理的延迟,降低系统复杂度。通过上述分析,可知:当模块只承担聚合功能时,只要缓存1包报文数据,等待存储地址即可;当模块承担数据处理任务时,可以将需要耦合计算的内容单独提取出来,最后进行并行化计算即可。因此本实施例提供的一种总线数据传输系统最终结构如8图所示。
如图8所示最终的聚合模块结构和图2相比,增加了一个“报文特征提取模块”。“报文特征提取模块”需要实现两个功能:(1)对报文进行缓存;(2)如果需要对报文数据进行处理,如果有耦合处理,提取参与运算的报文数据。
在本实施例中,增加报文特征提取模块可以在不改变数据结构时,通过并行处理的方法减小总延时;同时,相比传统的并行化处理方法,系统复杂度大大降低。
在又一个实施例中,请结合图9所示,本发明还提供了一种总线数据传输方法100,所述方法包括:
步骤101,设置多个缓存空间,其中,每个缓存空间对应不同的地址段,且缓存空间的总数量介于所有报文ID号总数量一倍和二倍之间;
步骤102,设置空闲地址池以根据各个缓存空间对应的地址段的占用情况确定空闲地址段;
步骤103,设置地址动态分配模块维护指示已处理报文ID号与地址段对应关系的索引表,并将接收到的输入报文包对应的当前报文ID号与所述索引表进行匹配以确定当前报文ID号是否已分配地址段;
步骤104,利用聚合条件判断模块判断接收到的输入报文包对应的当前报文ID号是否达到聚合阈值,在确认达到聚合阈值时生成聚合信号和新地址段申请,在确认未达到聚合阈值时不生成聚合信号和新地址段申请;
步骤105,响应于当前报文ID号未分配地址段或接收到新地址段申请,则利用地址动态分配模块从所述空闲地址池管理的所有空闲地址段中为当前报文ID号申请新的地址段并更新所述索引表;
步骤106,响应于当前报文ID号已分配地址段且未接收到新地址段申请,则地址动态分配模块将接收到的输入报文包对应的输出报文包写入与当前报文ID号匹配的地址段对应的缓存空间中;
步骤107,利用聚合数据搬移模块在接收到聚合条件判断模块生成的聚合信号时将当前报文ID号对应的存储地址段内存储的输出报文包搬移到总线上,并在接收到总线搬移结束信号时将当前报文ID号对应的存储地址添加到所述空闲地址池以释放地址段。
上述一种总线数据传输方法,采用动态地址分配机制代替传统评判缓存机制,将缓存空间数量设置成略大于所有报文ID号的总数量,增加空闲地址池和动态地址分配模块,通过采用动态地址分配机制来替代传统的乒乓存储架构,可以大大提高数据传输性能、降低复杂度、减小资源占用。
在一些实施中,所述方法还包括:
设置包括第一缓存和第二缓存的报文特征提取模块以及处理模块;
将输入报文包的完整报文数据缓存到所述第一缓存中,将输入报文包中参与耦合计算的关键数据缓存到所述第二缓存中;
所述地址动态分配模块和所述聚合条件判断模块均从所述第一缓存中获取输入报文包;
响应于所述第二缓存中存入数据,则所述处理模块基于所述第一缓存和所述第二缓存中的数据执行并行运算以生成输出报文包;
响应于所述第二缓存没有存入数据,则输出报文包与输入报文包相同。
在一些实施例中,所述第二缓存中参与耦合计算的关键数据为对完整报文数据执行耦合计算所需时长超过一个时钟周期对应的报文数据。
在一些实施例中,总线为AMBA总线或PCIe总线。
在一些实施例中,所有报文ID号的总数量为256个,缓存空间的总数量为288个,所述聚合阈值为16个。
在一些实施例中,总线数据用于固态硬盘读写控制。
根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图10所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的总线数据传输方法,具体来说,所述方法包括以下步骤:
设置多个缓存空间,其中,每个缓存空间对应不同的地址段,且缓存空间的总数量介于所有报文ID号总数量的一倍和二倍之间;
设置空闲地址池以根据各个缓存空间对应的地址段的占用情况确定空闲地址段;
设置地址动态分配模块维护指示已处理报文ID号与地址段对应关系的索引表,并将接收到的输入报文包对应的当前报文ID号与所述索引表进行匹配以确定当前报文ID号是否已分配地址段;
利用聚合条件判断模块判断接收到的输入报文包对应的当前报文ID号是否达到聚合阈值,在确认达到聚合阈值时生成聚合信号和新地址段申请,在确认未达到聚合阈值时不生成聚合信号和新地址段申请;
响应于当前报文ID号未分配地址段或接收到新地址段申请时,则利用地址动态分配模块从所述空闲地址池管理的所有空闲地址段中为当前报文ID号申请新的地址段并更新所述索引表;
响应于当前报文ID号已分配地址段且未接收到新地址段申请时,则地址动态分配模块将接收到的输入报文包对应的输出报文包写入与当前报文ID号匹配的地址段对应的缓存空间中;
利用聚合数据搬移模块在接收到聚合条件判断模块生成的聚合信号时将当前报文ID号对应的存储地址段内存储的输出报文包搬移到总线上,并在接收到总线搬移结束信号时将当前报文ID号对应的存储地址添加到所述空闲地址池以释放地址段。
在一些实施例中,所述方法还包括:
设置包括第一缓存和第二缓存的报文特征提取模块以及处理模块;
将输入报文包的完整报文数据缓存到所述第一缓存中,将输入报文包中参与耦合计算的关键数据缓存到所述第二缓存中;
所述地址动态分配模块和所述聚合条件判断模块均从所述第一缓存中获取输入报文包;
响应于所述第二缓存中存入数据,则所述处理模块基于所述第一缓存和所述第二缓存中的数据执行并行运算以生成输出报文包;
响应于所述第二缓存没有存入数据,则输出报文包与输入报文包相同。
在一些实施例中,所述第二缓存中参与耦合计算的关键数据为对完整报文数据执行耦合计算所需时长超过一个时钟周期对应的报文数据。
在一些实施例中,总线为AMBA总线或PCIe总线。
在一些实施例中,所有报文ID号的总数量为256个,缓存空间的总数量为288个,所述聚合阈值为16个。
在一些实施例中,总线数据用于固态硬盘读写控制。
根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的总线数据传输方法,具体来说,包括执行以下步骤:
设置多个缓存空间,其中,每个缓存空间对应不同的地址段,且缓存空间的总数量介于所有报文ID号总数量的一倍和二倍之间;
设置空闲地址池以根据各个缓存空间对应的地址段的占用情况确定空闲地址段;
设置地址动态分配模块维护指示已处理报文ID号与地址段对应关系的索引表,并将接收到的输入报文包对应的当前报文ID号与所述索引表进行匹配以确定当前报文ID号是否已分配地址段;
利用聚合条件判断模块判断接收到的输入报文包对应的当前报文ID号是否达到聚合阈值,在确认达到聚合阈值时生成聚合信号和新地址段申请,在确认未达到聚合阈值时不生成聚合信号和新地址段申请;
响应于当前报文ID号未分配地址段或接收到新地址段申请时,则利用地址动态分配模块从所述空闲地址池管理的所有空闲地址段中为当前报文ID号申请新的地址段并更新所述索引表;
响应于当前报文ID号已分配地址段且未接收到新地址段申请时,则地址动态分配模块将接收到的输入报文包对应的输出报文包写入与当前报文ID号匹配的地址段对应的缓存空间中;
利用聚合数据搬移模块在接收到聚合条件判断模块生成的聚合信号时将当前报文ID号对应的存储地址段内存储的输出报文包搬移到总线上,并在接收到总线搬移结束信号时将当前报文ID号对应的存储地址添加到所述空闲地址池以释放地址段。
在一些实施例中,所述方法还包括:
设置包括第一缓存和第二缓存的报文特征提取模块以及处理模块;
将输入报文包的完整报文数据缓存到所述第一缓存中,将输入报文包中参与耦合计算的关键数据缓存到所述第二缓存中;
所述地址动态分配模块和所述聚合条件判断模块均从所述第一缓存中获取输入报文包;
响应于所述第二缓存中存入数据,则所述处理模块基于所述第一缓存和所述第二缓存中的数据执行并行运算以生成输出报文包;
响应于所述第二缓存没有存入数据,则输出报文包与输入报文包相同。
在一些实施例中,所述第二缓存中参与耦合计算的关键数据为对完整报文数据执行耦合计算所需时长超过一个时钟周期对应的报文数据。
在一些实施例中,总线为AMBA总线或PCIe总线。
在一些实施例中,所有报文ID号的总数量为256个,缓存空间的总数量为288个,所述聚合阈值为16个。
在一些实施例中,总线数据用于固态硬盘读写控制。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种总线数据传输系统,其特征在于,所述系统包括:
多个缓存空间,其中,每个缓存空间对应不同的地址段,且缓存空间的总数量介于所有报文ID号总数量一倍和二倍之间;
空闲地址池,用于根据各个缓存空间对应的地址段的占用情况确定空闲地址段;
地址动态分配模块,用于维护指示已处理报文ID号与地址段对应关系的索引表,以及将接收到的输入报文包对应的当前报文ID号与所述索引表进行匹配,以确定当前报文ID号是否已分配地址段,在当前报文ID号未分配地址段或接收到新地址段申请时,从所述空闲地址池管理的所有空闲地址段中为当前报文ID号申请新的地址段并更新所述索引表,在当前报文ID号已分配地址段且未接收到新地址段申请时,将接收到的输入报文包对应的输出报文包写入与当前报文ID号匹配的地址段对应的缓存空间中;
聚合条件判断模块,用于判断接收到的输入报文包对应的当前报文ID号是否达到聚合阈值,在确认达到聚合阈值时生成聚合信号和新地址段申请,在确认未达到聚合阈值时不生成聚合信号和新地址段申请;
聚合数据搬移模块,用于在接收到聚合条件判断模块生成的聚合信号时将当前报文ID号对应的存储地址段内存储的输出报文包搬移到总线上,并在接收到总线搬移结束信号时将当前报文ID号对应的存储地址添加到所述空闲地址池以释放地址段。
2.根据权利要求1所述的总线数据传输系统,其特征在于,所述系统还包括报文特征提取模块和处理模块,所述报文特征提取模块包括:第一缓存和第二缓存;
所述第一缓存用于缓存输入报文包的完整报文数据,所述第二缓存用于缓存输入报文包中参与耦合计算的关键数据;
所述地址动态分配模块和所述聚合条件判断模块均从所述第一缓存中获取输入报文包;
响应于所述第二缓存中存入数据,则所述处理模块基于所述第一缓存和所述第二缓存中的数据执行并行运算以生成输出报文包;
响应于所述第二缓存没有存入数据,则输出报文包与输入报文包相同。
3.根据权利要求2所述的总线数据传输系统,其特征在于,所述第二缓存中参与耦合计算的关键数据为对完整报文数据执行耦合计算所需时长超过一个时钟周期对应的报文数据。
4.根据权利要求1所述的总线数据传输系统,其特征在于,总线为AMBA总线或PCIe总线。
5.根据权利要求1所述的总线数据传输系统,其特征在于,所有报文ID号的总数量为256个,缓存空间的总数量为288个,所述聚合阈值为16个。
6.根据权利要求1所述的总线数据传输系统,其特征在于,总线数据用于固态硬盘读写控制。
7.一种总线数据传输方法,其特征在于,所述方法包括:
设置多个缓存空间,其中,每个缓存空间对应不同的地址段,且缓存空间的总数量介于所有报文ID号总数量的一倍和二倍之间;
设置空闲地址池以根据各个缓存空间对应的地址段的占用情况确定空闲地址段;
设置地址动态分配模块维护指示已处理报文ID号与地址段对应关系的索引表,并将接收到的输入报文包对应的当前报文ID号与所述索引表进行匹配,以确定当前报文ID号是否已分配地址段;
利用聚合条件判断模块判断接收到的输入报文包对应的当前报文ID号是否达到聚合阈值,在确认达到聚合阈值时生成聚合信号和新地址段申请,在确认未达到聚合阈值时不生成聚合信号和新地址段申请;
响应于当前报文ID号未分配地址段或接收到新地址段申请,则利用地址动态分配模块从所述空闲地址池管理的所有空闲地址段中为当前报文ID号申请新的地址段并更新所述索引表;
响应于当前报文ID号已分配地址段且未接收到新地址段申请,则地址动态分配模块将接收到的输入报文包对应的输出报文包写入与当前报文ID号匹配的地址段对应的缓存空间中;
利用聚合数据搬移模块在接收到聚合条件判断模块生成的聚合信号时,将当前报文ID号对应的存储地址段内存储的输出报文包搬移到总线上,并在接收到总线搬移结束信号时,将当前报文ID号对应的存储地址添加到所述空闲地址池以释放地址段。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
设置包括第一缓存和第二缓存的报文特征提取模块以及处理模块;
将输入报文包的完整报文数据缓存到所述第一缓存中,将输入报文包中参与耦合计算的关键数据缓存到所述第二缓存中;
所述地址动态分配模块和所述聚合条件判断模块均从所述第一缓存中获取输入报文包;
响应于所述第二缓存中存入数据,则所述处理模块基于所述第一缓存和所述第二缓存中的数据执行并行运算以生成输出报文包;
响应于所述第二缓存没有存入数据,则输出报文包与输入报文包相同。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器中运行的计算机程序,所述处理器执行所述程序时执行权利要求7-8任意一项所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行权利要求7-8任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210908098.5A CN115277644A (zh) | 2022-07-29 | 2022-07-29 | 一种总线数据传输系统、方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210908098.5A CN115277644A (zh) | 2022-07-29 | 2022-07-29 | 一种总线数据传输系统、方法、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115277644A true CN115277644A (zh) | 2022-11-01 |
Family
ID=83771262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210908098.5A Pending CN115277644A (zh) | 2022-07-29 | 2022-07-29 | 一种总线数据传输系统、方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115277644A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171065A (zh) * | 2023-11-02 | 2023-12-05 | 摩尔线程智能科技(北京)有限责任公司 | 地址管理方法、装置、电子设备及存储介质 |
-
2022
- 2022-07-29 CN CN202210908098.5A patent/CN115277644A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117171065A (zh) * | 2023-11-02 | 2023-12-05 | 摩尔线程智能科技(北京)有限责任公司 | 地址管理方法、装置、电子设备及存储介质 |
CN117171065B (zh) * | 2023-11-02 | 2024-03-01 | 摩尔线程智能科技(北京)有限责任公司 | 地址管理方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11467975B2 (en) | Data processing method and NVMe storage device | |
US9569366B2 (en) | System and method to provide non-coherent access to a coherent memory system | |
CN111290973B (zh) | 数据写入方法、装置、计算机设备及存储介质 | |
US8595401B2 (en) | Input output bridging | |
CN110119304B (zh) | 一种中断处理方法、装置及服务器 | |
WO2019057005A1 (zh) | 数据校验的方法、装置以及网卡 | |
CN111949568A (zh) | 一种报文处理方法、装置及网络芯片 | |
CN115374046B (zh) | 一种多处理器数据交互方法、装置、设备及存储介质 | |
CN115277644A (zh) | 一种总线数据传输系统、方法、设备及存储介质 | |
CN104317716A (zh) | 分布式节点间的数据传输方法及分布式节点设备 | |
WO2018000820A1 (zh) | 一种队列管理方法和装置 | |
CN116204487A (zh) | 远程数据访问方法及装置 | |
CN116755635B (zh) | 一种硬盘控制器缓存系统、方法、硬盘设备及电子设备 | |
CN112765090B (zh) | 一种目标地址的预取方法、系统、设备及介质 | |
CN114024844B (zh) | 数据调度方法、数据调度装置及电子设备 | |
CN111190840A (zh) | 基于现场可编程门阵列控制的多方中央处理器通信架构 | |
CN115495406A (zh) | 一种基于PCIe的报文传输方法、装置、设备及存储介质 | |
CN111694777B (zh) | 基于PCIe接口的DMA传输方法 | |
CN113641604A (zh) | 一种数据传输方法及系统 | |
CN112948298A (zh) | 一种报文处理方法及装置 | |
CN115842790B (zh) | 一种应用于PCIe设备的业务数据流量控制方法 | |
CN116226027B (zh) | 数据传输系统、方法、装置、通信设备及存储介质 | |
CN114253733B (zh) | 一种内存管理方法、装置、计算机设备和存储介质 | |
CN114610661B (zh) | 数据处理装置、方法和电子设备 | |
CN117312201B (zh) | 一种数据传输方法、装置及加速器设备、主机和存储介质 |
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 |