一种多数据对多端口的仲裁方法及相关装置制造方法及图纸

技术编号:27257458 阅读:37 留言:0更新日期:2021-02-04 12:37
本申请公开了一种多数据对多端口的仲裁方法及相关装置,包括构建数据与端口的关系矩阵;关系矩阵中位于同一行或者位于同一列的各个元素为同一数据对各个端口的请求情况对应的值;若数据对端口有请求,则对应的值为1;若数据对端口无请求,则对应的值为0;根据数据与端口的排列组合的个数确定乘法器的个数;以数据与端口的关系矩阵的元素作为乘法器的输入值输入乘法器;同一乘法器输入关系矩阵的每行或者每列中的一个元素,不同乘法器输入的元素不完全相同;选择一个输出值为1的乘法器,并以输出值为1的乘法器的输入值对应的数据与端口的分配情况作为冲裁结果。该方法能够有效提高仲裁速度。仲裁速度。仲裁速度。

【技术实现步骤摘要】
一种多数据对多端口的仲裁方法及相关装置


[0001]本申请涉及端口分配
,特别涉及一种多数据对多端口的仲裁方法;还涉及一种多数据对多端口仲裁装置、设备以及计算机可读存储介质。

技术介绍

[0002]硬件电路设计实现中,通常会出现多个数据向多个端口申请访问的情况,此时需要仲裁算法,按照多个数据不同的访问需求,实现对数据进行仲裁有效分配。成功仲裁需要避免“饿死”问题,即保证每一个数据按照需求分配到不同的端口,不会出现有数据无法获得端口的情况。例如在海量数据的存储压缩及恢复的应用场景中,在完成特征提取后,会产生多个数据,每个数据有基于哈希数据得到的多个存储位置可以进行选择存储,此时在硬件实现中,涉及对多个数据面向多个端口的仲裁实现问题。传统存储加密压缩主要基于CPU的通用服务器,其运算速度受限于CPU架构,计算资源受限于系统调度,无法实现高速并行计算,因此在高速大量数据的需求背景下,具有很强的专用集成电路的实现需求。
[0003]具体应用场景可以解释为:在实际的工作情况中,已知多数据对多端口的仲裁问题,每个数据虽然可以至少分往一个端口,但是每个端口最多可以接受一个数据,当N个数据分往M个端口,需满足;1、M大于或等于N。2、有相同端口需求的n个数据,所能满足其需求的端口数量m大于或等于n。由此,每个数据都在不同的端口且符合该数据所申请的端口需求的情况下,可以有至少一个有效的仲裁方式。如果按照每个数据对端口访问的申请需求,随机进行分配,很容易出现端口冲突问题,即多个数据同时申请且只能申请同一个端口,出现无法成功分配N个数据到N个不同端口的问题。
[0004]目前,常见的软件解决方案有两种方式,第一种是罗列出所有的可能仲裁方式,排除掉可能导致“饿死”的情况,留下合适的仲裁解决方案。第二种是正向仲裁后,每当发现无法解决的“饿死”情况时,反向回溯前一步,直到正向找到正确的仲裁方式。
[0005]对于第一种方案,在硬件实现上,需要预留最差情况下的数据暂存单元,面积损耗巨大。对于第二种方案,需要不断回溯并判断,在最差情况下,需要进行遍历每种所有可能的选择,硬件实现的速度太慢,需要设置的时钟周期取决于最差情况,导致电路工作速度很低。
[0006]有鉴于此,如何提高仲裁速度已成为本领域技术人员亟待解决的技术问题。

技术实现思路

[0007]本申请的目的是提供一种多数据对多端口的仲裁方法,能够有效提高仲裁速度。本申请的另一个目的是提供一种多数据对多端口的仲裁装置、设备以及计算机可读存储介质,均具有上述技术效果。
[0008]为解决上述技术问题,本申请提供了一种多数据对多端口的仲裁方法,包括:
[0009]构建数据与端口的关系矩阵;所述关系矩阵中位于同一行或者位于同一列的各个元素为同一数据对各个端口的请求情况对应的值;若数据对端口有请求,则对应的值为1;
若数据对端口无请求,则对应的值为0;
[0010]根据数据与端口的排列组合的个数确定乘法器的个数;
[0011]以数据与端口的关系矩阵的元素作为所述乘法器的输入值输入所述乘法器;同一乘法器输入所述关系矩阵的每行或者每列中的一个元素,不同乘法器输入的元素不完全相同;
[0012]选择一个输出值为1的乘法器,并以输出值为1的所述乘法器的输入值对应的数据与端口的分配情况作为冲裁结果。
[0013]可选的,所述根据数据与端口的排列组合的个数确定乘法器的个数包括:
[0014]当数据的个数大于端口的个数时,所述乘法器的个数等于
[0015]当数据的个数小于或等于端口的个数时,所述乘法器的个数等于
[0016]其中,A表示排列组合运算,m表示端口的个数,n表示数据的个数。
[0017]可选的,所述选择一个输出为1的乘法器,包括:
[0018]当输出为1的乘法器的个数为一个时,选择唯一输出为1的所述乘法器;
[0019]当输出为1的乘法器的个数为两个或两个以上时,采用轮询的方式,选择首个轮询到的输出为1的所述乘法器。
[0020]可选的,所述选择一个输出为1的乘法器,包括:
[0021]当输出为1的乘法器的个数为一个时,选择唯一输出为1的所述乘法器;
[0022]当输出为1的乘法器的个数为两个或两个以上时,通过选择器选通其中一个输出为1的所述乘法器。
[0023]为解决上述技术问题,本申请还提供了一种多数据对多端口的仲裁装置,包括:
[0024]构建模块,用于构建数据与端口的关系矩阵;所述关系矩阵中位于同一行或者位于同一列的各个元素为同一数据对各个端口的请求情况对应的值;若数据对端口有请求,则对应的值为1;若数据对端口无请求,则对应的值为0;
[0025]确定模块,用于根据数据与端口的排列组合的个数确定乘法器的个数;
[0026]输入模块,用于以数据与端口的关系矩阵的元素作为所述乘法器的输入值输入所述乘法器;同一乘法器输入所述关系矩阵的每行或者每列中的一个元素,不同乘法器输入的元素不完全相同;
[0027]选择模块,用于选择一个输出值为1的乘法器,并以输出值为1的所述乘法器的输入值对应的数据与端口的分配情况作为冲裁结果。
[0028]可选的,所述确定模块具体用于当数据的个数大于端口的个数时,所述乘法器的个数等于A
nm
;当数据的个数小于或等于端口的个数时,所述乘法器的个数等于An
m
;其中,A表示排列组合运算,m表示端口的个数,n表示数据的个数。
[0029]可选的,所述选择模块具体用于当输出为1的乘法器的个数为一个时,选择唯一输出为1的所述乘法器;当输出为1的乘法器的个数为两个或两个以上时,采用轮询的方式,选择首个轮询到的输出为1的所述乘法器。
[0030]可选的,所述选择模块具体用于当输出为1的乘法器的个数为一个时,选择唯一输出为1的所述乘法器;当输出为1的乘法器的个数为两个或两个以上时,通过选择器选通其中一个输出为1的所述乘法器。
[0031]为解决上述技术问题,本申请还提供了一种多数据对多端口的仲裁设备,包括:
[0032]存储器,用于存储计算机程序;
[0033]处理器,用于执行所述计算机程序时实现如上所述的多数据对多端口的仲裁方法的步骤。
[0034]为解决上述技术问题,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的多数据对多端口的仲裁方法的步骤。
[0035]本申请所提供的多数据对多端口的仲裁方法,包括:构建数据与端口的关系矩阵;所述关系矩阵中位于同一行或者位于同一列的各个元素为同一数据对各个端口的请求情况对应的值;若数据对端口有请求,则对应的值为1;若数据对端口无请求,则对应的值为0;根据数据与端口的排列组合的个数确定乘法器的个数;以数据与端口的关系矩阵的元素作为所述乘法器的输入值输入所述乘法器;同一乘法器输入所述关系矩阵的每行或本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种多数据对多端口的仲裁方法,其特征在于,包括:构建数据与端口的关系矩阵;所述关系矩阵中位于同一行或者位于同一列的各个元素为同一数据对各个端口的请求情况对应的值;若数据对端口有请求,则对应的值为1;若数据对端口无请求,则对应的值为0;根据数据与端口的排列组合的个数确定乘法器的个数;以数据与端口的关系矩阵的元素作为所述乘法器的输入值输入所述乘法器;同一乘法器输入所述关系矩阵的每行或者每列中的一个元素,不同乘法器输入的元素不完全相同;选择一个输出值为1的乘法器,并以输出值为1的所述乘法器的输入值对应的数据与端口的分配情况作为冲裁结果。2.根据权利要求1所述的仲裁方法,其特征在于,所述根据数据与端口的排列组合的个数确定乘法器的个数包括:当数据的个数大于端口的个数时,所述乘法器的个数等于当数据的个数小于或等于端口的个数时,所述乘法器的个数等于其中,A表示排列组合运算,m表示端口的个数,n表示数据的个数。3.根据权利要求1所述的仲裁方法,其特征在于,所述选择一个输出为1的乘法器,包括:当输出为1的乘法器的个数为一个时,选择唯一输出为1的所述乘法器;当输出为1的乘法器的个数为两个或两个以上时,采用轮询的方式,选择首个轮询到的输出为1的所述乘法器。4.根据权利要求1所述的仲裁方法,其特征在于,所述选择一个输出为1的乘法器,包括:当输出为1的乘法器的个数为一个时,选择唯一输出为1的所述乘法器;当输出为1的乘法器的个数为两个或两个以上时,通过选择器选通其中一个输出为1的所述乘法器。5.一种多数据对多端口的仲裁装置,其特征在于,包括:构建模块,用于构建数据与端口的关系矩阵;所述关系矩阵中位于同一行或者位于同一列的各个元素为同一数据对各个端口的请求情况对应的值;若数...

【专利技术属性】
技术研发人员:吴睿振黄萍王凛
申请(专利权)人:山东云海国创云计算装备产业创新中心有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1