CN115017072B - 突发长度拆分方法、装置、芯片系统和电子设备 - Google Patents
突发长度拆分方法、装置、芯片系统和电子设备 Download PDFInfo
- Publication number
- CN115017072B CN115017072B CN202210941399.8A CN202210941399A CN115017072B CN 115017072 B CN115017072 B CN 115017072B CN 202210941399 A CN202210941399 A CN 202210941399A CN 115017072 B CN115017072 B CN 115017072B
- Authority
- CN
- China
- Prior art keywords
- burst length
- target
- data
- combination
- request
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 28
- 230000005540 biological transmission Effects 0.000 claims abstract description 148
- 239000000725 suspension Substances 0.000 claims abstract description 5
- 238000011144 upstream manufacturing Methods 0.000 claims description 14
- 230000007246 mechanism Effects 0.000 claims description 7
- 238000012545 processing Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 5
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000000047 product Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Images
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/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
- G06F13/30—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal with priority control
-
- 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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4004—Coupling between buses
- G06F13/4027—Coupling between buses using bus bridges
- G06F13/4031—Coupling between buses using bus bridges with arbitration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Communication Control (AREA)
Abstract
本公开提供一种突发长度拆分方法、装置、芯片系统和电子设备,该方法包括:接收目标请求信号;根据下游设备的挂起请求能力和下游设备支持的至少一个要求突发长度确定目标请求信号对应的待处理数据的突发长度组合;根据突发长度组合拆分待处理数据得到传输数据。能够根据下游设备的挂起请求能力进行拆分,可以选取一个最佳的拆分方式,以降低因为拆分导致的性能损失;还能够满足下游设备的要求突发长度,提高了拆分通用性。
Description
技术领域
本公开涉及数据处理技术领域,尤其涉及一种突发长度拆分方法、装置、芯片系统和电子设备。
背景技术
随着科学技术的发展,各种设备及应用场景对片上系统(System on Chip,SOC)的运行效率提出了更加严苛的要求,AXI(Advanced Extensible Interface)总线因为其具备较高的传输效率及良好的可移植性被广泛的应用于片上系统。
AXI总线协议支持不同的突发长度(burst length),根据整个系统的需求和不同IP(Intellectual Property)本身的特点,实现通过一笔或多笔传输数据的目的。但现有的拆分方式过于单一,不仅无法弥补由于拆分带来的性能损失,且通用性不强。
发明内容
本公开的目的是提供一种突发长度拆分方法、装置、芯片系统和电子设备,可以降低因为拆分导致的性能损失,且提高拆分方法的通用性。
根据本公开的一个方面,提供一种突发长度拆分方法,所述方法包括:
接收目标请求信号;
根据下游设备的挂起请求能力和所述下游设备支持的至少一个要求突发长度确定所述目标请求信号对应的待处理数据的突发长度组合;
根据所述突发长度组合拆分所述待处理数据得到传输数据。
在一些实施例中,所述根据下游设备的挂起请求能力和所述下游设备支持的至少一个要求突发长度确定所述目标请求信号对应的待处理数据的突发长度组合的步骤包括:
将所述下游设备支持的挂起请求的笔数与第一预设阈值进行比较;
若所述挂起请求的笔数大于或等于所述第一预设阈值,则基于所述至少一个要求突发长度获得的所述突发长度组合使得所述传输数据中非真实数据的笔数最少;
若所述挂起请求的笔数小于所述第一预设阈值,则基于所述至少一个要求突发长度获得的所述突发长度组合使得突发长度传输请求的笔数最少。
在一些实施例中,所述若所述挂起请求的笔数大于或等于所述第一预设阈值,则基于所述至少一个要求突发长度获得的所述突发长度组合使得所述传输数据中非真实数据的笔数最少的步骤包括:
将所述至少一个要求突发长度按照不同排序生成多个突发长度序列;
将所述待处理数据的实际突发长度Y与每个所述突发长度序列Xi分别进行取模运算,根据所述取模运算的商值和模数确定每个所述突发长度序列Xi对应的候选突发长度组合Zi;所述取模运算的公式表达为:
Ki=((((Y%Xi,1)%Xi,2)···)% Xi,n-1)%Xi,n;
qi= qi,1+ qi,2+···+qi,n,qi,1为Y/ Xi,1的商值,qi,2为(Y% Xi,1)/ Xi,2的商值,qi,n为((((Y%Xi,1)%Xi,2)···)% Xi,n-1)/ Xi,n的商值;
Zi=(qi,0)(Ki=0);
Zi=(qi,Xi,j- Ki)(Ki≠0);
在Ki=0的情况下依据第i个候选突发长度组合拆分的传输数据中非真实数据的笔数为0,第i个候选突发长度组合中突发长度传输请求的笔数为qi;Ki≠0的情况下依据第i个候选突发长度组合拆分的传输数据中非真实数据的笔数为Xi,j- Ki,第i个候选突发长度组合中突发长度传输请求的笔数为qi+1;n表征第i个突发长度序列中共有n个元素,所述元素表征所述要求突发长度;在Ki=0的情况下Xi,j 为第i个候选突发长度序列中计算得到Ki的目标元素,在Ki≠0的情况下Xi,j 为第i个候选突发长度序列中大于且邻近Ki的目标元素;
从所有所述候选突发长度组合中选择传输数据中非真实数据的笔数最少的候选突发长度组合为目标候选突发长度组合;
若所述目标候选突发长度组合为多个,从多个所述目标候选突发长度组合中选择突发长度传输请求的笔数最少的目标候选突发长度组合为所述突发长度组合;
若所述目标候选突发长度组合为一个,则将所述目标候选突发长度组合确定为所述突发长度组合。
在一些实施例中,所述若所述挂起请求的笔数小于所述第一预设阈值,则基于所述至少一个要求突发长度获得的所述突发长度组合使得突发长度传输请求的笔数最少的步骤包括:
将所述待处理数据的实际突发长度与所有的要求突发长度进行比较;
若所述实际突发长度的值大于所有的要求突发长度的值,将所述实际突发长度的值与所有的要求突发长度中的最大值相除,得到第一商值和第一余数值,将所述第一余数值与所有的要求突发长度的值进行比较,选取大于且邻近所述第一余数值的要求突发长度为第一目标要求突发长度;所述第一商值加一表征为所述突发长度传输请求的笔数,依据所述第一余数值和所述第一目标要求突发长度得到所述传输数据中非真实数据的笔数;
若存在所述要求突发长度的值大于所述实际突发长度的值,选取大于且邻近所述实际突发长度的要求突发长度为第二目标要求突发长度;依据所述第二目标要求突发长度得到所述传输数据中非真实数据的笔数,确定所述突发长度传输请求的笔数为1。
在一些实施例中,所述目标请求信号为根据请求仲裁机制从多个请求信号中确定的最先处理的请求信号。
在一些实施例中,根据请求仲裁机制从多个请求信号中确定最先处理的请求信号的步骤包括:
将每个请求信号的等待次数与第二预设阈值进行比较;
若存在等待次数大于或等于所述第二预设阈值的情况,则将该等待次数对应的请求信号确定为最先进行处理的请求信号;
若存在等待次数小于所述第二预设阈值的情况,则根据每个请求信号的优先级高低和接收顺序确定目标请求信号。
在一些实施例中,接收所述目标请求信号之后,所述方法还包括:对早于目标请求信号接收的请求信号对应的等待次数进行加1处理。
根据本公开的另一方面,本公开提供一种突发长度拆分装置,包括:请求接收模块和请求拆分模块;
所述请求接收模块,用于接收目标请求信号;
所述请求拆分模块,用于根据下游设备的挂起请求能力和所述下游设备支持的至少一个要求突发长度确定所述请求信号对应的待处理数据的突发长度组合;
所述请求拆分模块,还用于根据所述突发长度组合拆分所述待处理数据得到传输数据。
在一些实施例中,所述请求拆分模块,还用于将所述下游设备支持的挂起请求的笔数与第一预设阈值进行比较;
所述请求拆分模块,还用于在所述挂起请求的笔数大于或等于所述第一预设阈值的情况下,确定基于所述至少一个要求突发长度获得的所述突发长度组合使得所述传输数据中非真实数据的笔数最少;
所述请求拆分模块,还用于在所述挂起请求的笔数小于所述第一预设阈值的情况下,基于所述至少一个要求突发长度获得的所述突发长度组合使得突发长度传输请求的笔数最少。
在一些实施例中,所述请求拆分模块,还用于将所述至少一个要求突发长度按照不同排序生成多个突发长度序列Xi;
所述请求拆分模块,还用于将所述待处理数据的实际突发长度Y与每个所述突发长度序列Xi分别进行取模运算,根据所述取模运算的商值和模数确定每个所述突发长度序列Xi对应的候选突发长度组合Zi;所述取模运算的公式表达为:
Ki=((((Y%Xi,1)%Xi,2)···)% Xi,n-1)%Xi,n;
qi= qi,1+ qi,2+···+qi,n,qi,1为Y/ Xi,1的商值,qi,2为(Y% Xi,1)/ Xi,2的商值,qi,n为((((Y%Xi,1)%Xi,2)···)% Xi,n-1)/ Xi,n的商值;
Zi=(qi,0)(Ki=0);
Zi=(qi,Xi,j- Ki)(Ki≠0);
在Ki=0的情况下依据第i个候选突发长度组合拆分的传输数据中非真实数据的笔数为0,第i个候选突发长度组合中突发长度传输请求的笔数为qi;Ki≠0的情况下依据第i个候选突发长度组合拆分的传输数据中非真实数据的笔数为Xi,j- Ki,第i个候选突发长度组合中突发长度传输请求的笔数为qi+1;n表征第i个突发长度序列中共有n个元素,所述元素表征所述要求突发长度;在Ki=0的情况下Xi,j 为第i个候选突发长度序列中计算得到Ki的目标元素,在Ki≠0的情况下Xi,j 为第i个候选突发长度序列中大于且邻近Ki的目标元素;
所述请求拆分模块,还用于从所有所述候选突发长度组合Zi中选择传输数据中非真实数据的笔数最少的候选突发长度组合为目标候选突发长度组合,若所述目标候选突发长度组合为多个,从多个所述目标候选突发长度组合中选择突发长度传输请求的笔数最少的目标候选突发长度组合为所述突发长度组合,若所述目标候选突发长度组合为一个,则将所述目标候选突发长度组合确定为所述突发长度组合。
在一些实施例中,所述请求拆分模块,还用于将所述待处理数据的实际突发长度与所有的要求突发长度进行比较;
所述请求拆分模块,还用于在所述实际突发长度的值大于所有的要求突发长度的值的情况下,将所述实际突发长度的值与所有的要求突发长度中的最大值相除,得到第一商值和第一余数值,将所述第一余数值与所有的要求突发长度的值进行比较,选取大于且邻近所述第一余数值的要求突发长度为第一目标要求突发长度;所述第一商值加一表征为所述突发长度传输请求的笔数,依据所述第一余数值和所述第一目标要求突发长度得到所述传输数据中非真实数据的笔数;
所述请求拆分模块,还用于在存在所述要求突发长度的值大于所述实际突发长度的值的情况下,选取大于且邻近所述实际突发长度的要求突发长度为第二目标要求突发长度;依据所述第二目标要求突发长度得到所述传输数据中非真实数据的笔数,确定所述突发长度传输请求的笔数为1。
根据本公开的另一方面,提供一种芯片系统,包括上述任一实施例所述的突发长度拆分装置,上游设备通过所述突发长度拆分装置与下游设备通信连接。
根据本公开的另一方面,提供一种电子设备,包括上述任一实施例所述的芯片系统。
附图说明
图1为本公开一个实施例提供的芯片系统的结构示意图;
图2为本公开一个实施例提供的突发长度拆分装置的结构示意图;
图3为本公开另一个实施例提供的突发长度拆分装置的结构示意图;
图4为本公开一个实施例提供的突发长度拆分方法流程示意图。
图标:
10-芯片系统;100-突发长度拆分装置;110-请求接收模块;120-请求拆分模块;130-仲裁模块;140-请求队列;150-响应模块;160-配置模块;200-上游设备;300-下游设备;400-控制器。
具体实施方式
在介绍本公开实施例之前,应当说明的是:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
本公开的目的是提供一种突发长度拆分方法、装置、芯片系统和电子设备。根据下游设备的挂起请求能力和下游设备支持的至少一个要求突发长度确定目标请求信号对应的待处理数据的突发长度组合,根据突发长度组合拆分待处理数据得到传输数据。采用本公开的突发长度拆分方法能够满足下游设备的要求突发长度,提高了拆分通用性;且能够根据下游设备的挂起请求能力进行拆分,可以选取一个最佳的拆分方式,以降低因为拆分导致的性能损失。
本公开的一个实施例提供一种芯片系统,如图1所示,该芯片系统10包括突发长度拆分装置100,上游设备200通过突发长度拆分装置100与下游设备300通信连接。
在本公开中,上游设备200、突发长度拆分装置100和下游设备300均可设置在同一芯片系统10中,上游设备200和下游设备300为同一芯片系统10中的不同功能模块。在另一种实施例中,上游设备200可以为不同芯片系统10中的功能模块,突发长度拆分装置100和下游设备300设置在同一芯片系统10中。当然,上游设备200、突发长度拆分装置100和下游设备300均可设置在不同芯片系统10中。在此并不作限定,可以根据实际情况进行设置。
其中,上游设备200和下游设备300均可以为IP核,例如,上游设备200可以为PCIE(peripheral component interconnect express,高速串行计算机扩展总线),下游设备300可以为cotex A35 的ACP(Accelerator Coherency Port,加速器一致性接口),PCIE通过突发长度拆分装置100访问ACP,通过本公开的突发长度拆分装置100对PCIE发送的目标请求信号对应的待处理数据进行拆分,可以满足ACP的要求突发长度。
在本公开中,芯片系统10可以为支持AXI总线协议的SOC。
其中,芯片系统10可以应用在电子设备上,该电子设备可以为智能手机、平板电脑、车载电脑、台式机、笔记本电脑等电子产品。
如图2所示,为突发长度拆分装置100的一种结构示意图。该突发长度拆分装置100包括请求接收模块110和请求拆分模块120。
在本公开中,请求接收模块110用于接收目标请求信号;请求拆分模块120用于根据下游设备300的挂起请求能力和下游设备300支持的至少一个要求突发长度确定目标请求信号对应的待处理数据的突发长度组合;请求拆分模块120还用于根据突发长度组合拆分待处理数据得到传输数据。
应理解,目标请求信号由上游设备200产生并发送,目标请求信号中携带有需要进行拆分处理的待处理数据的笔数信息,该目标请求信号可以为读请求信号,也可以为写请求信号。下游设备300的挂起请求能力可以理解为下游设备300的outstanding能力,即下游设备300在前一个请求还没处理完成的时候,允许挂起等待的挂起请求的笔数;下游设备300接收的挂起请求可以为请求拆分模块120发送的突发长度传输请求,请求拆分模块120每向下游设备300发起一笔突发长度传输请求,则需要向下游设备300发送与要求突发长度相匹配的传输数据。下游设备300支持的要求突发长度为传输数据中真实数据的笔数,或为一笔传输数据中真实数据和非真实数据的总笔数;即要求突发长度能够实现通过一笔突发长度传输请求传输一笔或多笔真实数据,或通过一笔突发长度传输请求传输一笔或多笔真实数据和非真实数据。
例如,若要求突发长度为2,一笔传输数据中真实数据的笔数为2,或一笔传输数据中真实数据和非真实数据的笔数分别为1。
在本公开中,当下游设备300支持多个要求突发长度时,可以根据下游设备300的挂起请求能力选取一个最佳的拆分方式,以降低因为拆分导致的性能损失。
根据下游设备300的挂起请求能力选取最佳的拆分方式的原理为:请求拆分模块120还用于将下游设备300支持的挂起请求的笔数与第一预设阈值进行比较;请求拆分模块120还用于在挂起请求的笔数大于或等于第一预设阈值的情况下,确定基于至少一个要求突发长度获得的突发长度组合使得传输数据中非真实数据的笔数最少;请求拆分模块120还用于在挂起请求的笔数小于第一预设阈值的情况下,基于至少一个要求突发长度获得的突发长度组合使得突发长度传输请求的笔数最少。
应理解,在挂起请求的笔数大于或等于第一预设阈值的情况下,为下游设备300的挂起请求能力较强的情况,下游设备300允许的挂起请求的笔数较多,对请求拆分模块120发送的突发长度传输请求的笔数不做限制,为了保证下游设备300的最优性能,只需保证传输数据中非真实数据的笔数最少。由于,下游设备300对非真实数据的处理,需要消耗算力资源,而非真实数据并非待处理数据,传输数据中非真实数据的笔数越多,下游设备300的算力资源浪费越大,在待处理数据能够正常传输的提前下,应使得传输数据中非真实数据的笔数最少。
在挂起请求的笔数小于第一预设阈值的情况下,为下游设备300的挂起请求能力较弱的情况,下游设备300允许的挂起请求的笔数较少,对请求拆分模块120发送的突发长度传输请求的笔数有限制,为了满足下游设备300的挂起请求要求,需保证突发长度传输请求的笔数最少,而传输数据中非真实数据的笔数为次要考虑条件。
在挂起请求的笔数大于或等于第一预设阈值的情况下,请求拆分模块120还用于将至少一个要求突发长度按照不同排序生成多个突发长度序列;将待处理数据的实际突发长度Y与每个突发长度序列Xi分别进行取模运算,根据取模运算的商值和模数确定每个突发长度序列Xi对应的候选突发长度组合Zi;取模运算的公式表达为:
Ki=((((Y%Xi,1)%Xi,2)···)% Xi,n-1)%Xi,n;
qi= qi,1+ qi,2+···+qi,n,qi,1为Y/ Xi,1的商值,qi,2为(Y% Xi,1)/ Xi,2的商值,qi,n为((((Y%Xi,1)%Xi,2)···)% Xi,n-1)/ Xi,n的商值;
Zi=(qi,0)(Ki=0);
Zi=(qi,Xi,j- Ki)(Ki≠0);
其中,在Ki=0的情况下依据第i个候选突发长度组合拆分的传输数据中非真实数据的笔数为0,第i个候选突发长度组合中突发长度传输请求的笔数为qi;在Ki≠0的情况下依据第i个候选突发长度组合拆分的传输数据中非真实数据的笔数为Xi,j- Ki,第i个候选突发长度组合中突发长度传输请求的笔数为qi+1;n表征第i个突发长度序列中共有n个元素,元素表征要求突发长度;在Ki=0的情况下Xi,j 为第i个候选突发长度序列中计算得到Ki的目标元素,在Ki≠0的情况下Xi,j 为第i个候选突发长度序列中大于且邻近Ki的目标元素。
请求拆分模块120还用于从所有候选突发长度组合Zi中选择传输数据中非真实数据的笔数最少的候选突发长度组合为目标候选突发长度组合,若目标候选突发长度组合为多个,从多个目标候选突发长度组合中选择突发长度传输请求的笔数最少的目标候选突发长度组合为突发长度组合,若目标候选突发长度组合为一个,则将目标候选突发长度组合确定为突发长度组合。
在本公开中,突发长度序列为至少一个要求突发长度的不同排列组合。若下游设备300的要求突发长度包括a、b和c,那么a、b和c按照不同排序可以生成6个突发长度序列,分别为abc、acb、bac、bca、cab和cba。
将待处理数据的实际突发长度Y与每个突发长度序列Xi中每个元素分别进行取模运算,可以得到每个突发长度序列Xi对应的候选突发长度组合Zi。
应理解,待处理数据的实际突发长度Y与一个突发长度序列Xi按照取模运算的公式进行计算,可以得到取模运算的商值和模数,根据商值和模数可以得到一组候选突发长度组合Zi。
以下游设备300的要求突发长度包括a、b和c,突发长度序列分别为X1=(a,b,c)、X2=(a,c,b)、X3=(b,a,c)、X4=(b,c,a)、X5=(c,a,b)和X6=(c,b,a)为例进行说明。其中,要求突发长度a、b和c为突发长度序列中的元素,每个突发长度序列中的元素均相同,只是突发长度序列中元素的排序不同。
待处理数据的实际突发长度Y与突发长度序列X1进行取模运算,得到突发长度序列X1对应的候选突发长度组合Z1的原理为:将待处理数据的实际突发长度Y与突发长度序列X1中第一个元素X1,1=a进行取模运算Y%a,可以得到第一个商值q1,1和第一个模数K1,1,将第一个模数K1,1与突发长度序列X1中第二个元素X1,2=b进行取模运算K1,1%b(或(Y%a)%b),可以得到第二个商值q1,2和第二个模数K1,2,将第二个模数K1,2与突发长度序列X1中第三个元素X1,3=c进行取模运算K1,2%c(或((Y%a)%b)%c),可以得到第三个商值q1,3和第三个模数K1,3。将第一个商值q1,1、第二商值q1,2和第三个商值q1,3相加可以得到商值q1;将第三个模数K1,3作为模数Ki。
在本公开中,若待处理数据的实际突发长度Y能够被要求突发长度整除,模数K1为0,对应的,候选突发长度组合Z1拆分的传输数据中非真实数据的笔数为0。模数K1为0具有以下几种情况:
若第一个模数K1,1为0,第二个模数K1,2和第三模数K1,3也对应为0,且第二商值q1,2和第三个商值q1,3对应为0,即实际突发长度Y能够被要求突发长度a整除,第一个商值即为取模运算的商值,候选突发长度组合Z1能够将待处理数据拆分为q1,1笔传输数据,对应能够产生q1,1笔突发长度传输请求,每笔传输数据中包括a笔真实数据。
若第一个模数K1,1不为0,第二个模数K1,2为0,第三模数K1,3也对应为0,且第三个商值q1,3对应为0,即实际突发长度Y能够被要求突发长度a和b整除,第一个商值和第二个商值的和即为取模运算的商值,候选突发长度组合Z1能够将待处理数据拆分为q1,1+q1,2笔传输数据,对应能够产生q1,1+q1,2笔突发长度传输请求,q1,1笔传输数据中包括a笔真实数据,q1,2笔传输数据中包括b笔真实数据。
若第一个模数K1,1和第二个模数K1,2不为0,第三模数K1,3为0,即实际突发长度Y能够被要求突发长度a、b和c整除,第一个商值、第二个商值和第三个商值的和即为取模运算的商值,候选突发长度组合Z1能够将待处理数据拆分为q1,1+q1,2+q1,3笔传输数据,对应能够产生q1,1+q1,2+q1,3笔突发长度传输请求,在q1,1笔传输数据中包括a笔真实数据,在q1,2笔传输数据中包括b笔真实数据,在q1,3笔传输数据中包括c笔真实数据。
在本公开中,若待处理数据的实际突发长度Y未能被要求突发长度整除,模数K1不为0,对应的,候选突发长度组合Z1拆分的传输数据中非真实数据的笔数为X1,j- K1。X1,j的确定方式具有以下几种方式:
在待处理数据的实际突发长度Y与突发长度序列X1中第一个元素X1,1=a进行取模运算Y%a,得到第一个模数K1,1后,将第一个模数K1,1与第二个元素b和第三个元素c进行比较,若第一个模数K1,1小于第二个元素b和第三个元素c,则从第一个元素a、第二个元素b和第三个元素c中选取邻近第一个模数K1,1的元素作为目标元素,若第一个元素a和第二个元素b均大于第三个元素c,第三个元素c则为目标元素。
也就是说,若第一个元素a和第二个元素b均大于第三个元素c,候选突发长度组合Z1拆分的传输数据中非真实数据的笔数为c- K1(其中,K1= K1,1),第i个候选突发长度组合中突发长度传输请求的笔数为q1,1+1。q1,1+1笔传输数据中有1笔传输数据由真实数据和非真实数据组成,该笔传输组件中真实数据为K1,1笔,非真实数据为c- K1,1笔;q1,1+1笔传输数据中有q1,1笔传输数据由真实数据组成,且该真实数据的笔数为a。
若第一个模数K1,1小于第二个元素b,但大于第三个元素c。由于第一个模数K1,1小于第二个元素b,第一个模数K1,1与第二个元素X1,2=b进行取模运算,得到的第二个商值q1,2为0,得到的第二个模数K1,2与第一个模数K1,1相同;由于第二个模数K1,2与第一个模数K1,1相同,且第一个模数K1,1大于第三个元素c,第二个模数K1,2与第三个元素X1,3=c进行取模运算,得到的第三个商值q1,3不为0,得到的第三个模数K1,3不等于第一个模数K1,1和第二个模数K1,2。
第三个模数K1,3小于第一个元素a、第二个元素b和第三个元素c,从第一个元素a、第二个元素b和第三个元素c中选取邻近第三个模数K1,3的元素作为目标元素,若第一个元素a和第二个元素b均大于第三个元素c,第三个元素c则为目标元素。
也就是说,候选突发长度组合Z1拆分的传输数据中非真实数据的笔数为c- K1(其中,K1= K1,3),第i个候选突发长度组合中突发长度传输请求的笔数为q1,1+ q1,3+1。q1,1+q1,3+1笔传输数据中有1笔传输数据由真实数据和非真实数据组成,该笔传输组件中真实数据为K1,3笔,非真实数据为c- K1,3笔;q1,1+ q1,3+1笔传输数据中有q1,1+ q1,3笔传输数据由真实数据组成,且存在q1,1笔传输数据的真实数据的笔数为a,存在q1,3笔传输数据的真实数据的笔数为c。
若第一个模数K1,1小于第三个元素c,但大于第二个元素b。由于第一个模数K1,1大于第二个元素b,第一个模数K1,1与第二个元素X1,2=b进行取模运算,得到的第二个商值q1,2不为0,得到的第二个模数K1,2小于第一个模数K1,1;由于第二个模数K1,2小于第一个模数K1,1,且第一个模数K1,1小于第三个元素c,第二个模数K1,2与第三个元素X1,3=c进行取模运算,得到的第三个商值q1,3为0,得到的第三个模数K1,3与第二个模数K1,2相同,即第三个模数K1,3小于第一个模数K1,1。
第二个模数K1,2小于第一个元素a、第二个元素b和第三个元素c,从第一个元素a、第二个元素b和第三个元素c中选取邻近第二个模数K1,2的元素作为目标元素,若第一个元素a和第二个元素b均大于第三个元素c,第三个元素c则为目标元素。
也就是说,候选突发长度组合Z1拆分的传输数据中非真实数据的笔数为c- K1(其中,K1= K1,2),第i个候选突发长度组合中突发长度传输请求的笔数为q1,1+ q1,2+1。q1,1+q1,2+1笔传输数据中有1笔传输数据由真实数据和非真实数据组成,该笔传输组件中真实数据为K1,2笔,非真实数据为c- K1,2笔;q1,1+ q1,2+1笔传输数据中有q1,1+ q1,2笔传输数据由真实数据组成,且存在q1,1笔传输数据的真实数据的笔数为a,存在q1,2笔传输数据的真实数据的笔数为b。
若第一个模数K1,1大于第二个元素b和第三个元素c。由于第一个模数K1,1大于第二个元素b,第一个模数K1,1与第二个元素X1,2=b进行取模运算,得到的第二个商值q1,2不为0,得到的第二个模数K1,2小于第一个模数K1,1;由于第二个模数K1,2小于第一个模数K1,1,但第一个模数K1,1大于第三个元素c,所以不确定第二个模数K1,2与第三个元素c的大小,若第二个模数K1,2小于第三个元素c,第二个模数K1,2小于第一个元素a、第二个元素b和第三个元素c,从第一个元素a、第二个元素b和第三个元素c中选取邻近第二个模数K1,2的元素作为目标元素;若第二个模数K1,2大于第三个元素c,第二个模数K1,2与第三个元素X1,3=c进行取模运算,得到的第三个商值q1,3不为0,得到的第三个模数K1,3小于第二个模数K1,2,第三个模数K1,3小于第一个元素a、第二个元素b和第三个元素c,从第一个元素a、第二个元素b和第三个元素c中选取邻近第三个模数K1,3的元素作为目标元素。
同理,计算得到其它突发长度序列Xi对应的候选突发长度组合Zi的原理,可以参照上述计算得到突发长度序列X1对应的候选突发长度组合Z1的原理,在此不再累述。
在本公开中,若待处理数据的实际突发长度和要求突发长度均从0开始计数,在进行取模运算之前,可将实际突发长度和要求突发长度均加1后再进行取模运算。
在本公开中,由于下游设备300的要求突发长度可以为多个,那么待处理数据的实际突发长度可以拆分为不同突发长度的组合。可以理解,若下游设备300的要求突发长度包括a、b和c,待处理数据的实际突发长度可以拆分为突发长度为a和b的传输数据。若待处理数据的实际突发长度与要求突发长度a和b可以整除,则传输数据中无非真实数据,传输数据由真实数据组成;若待处理数据的实际突发长度与要求突发长度a和b不可以整除,为了满足传输数据的格式要求,在其中一笔传输数据中需要设置非真实数据来补齐数据,该笔传输数据由真实数据和非真实数据组成。
由于候选突发长度组合中目标候选突发长度组合可能存在多个,可以从多个目标候选突发长度组合中选择突发长度传输请求的笔数最少的目标候选突发长度组合作为最终的突发长度组合,进而保证下游设备300的性能最优。
在挂起请求的笔数小于第一预设阈值的情况下,请求拆分模块120还用于将待处理数据的实际突发长度与所有的要求突发长度进行比较;若实际突发长度的值大于所有的要求突发长度的值,将实际突发长度的值与所有的要求突发长度中的最大值相除,得到第一商值和第一余数值,将第一余数值与所有的要求突发长度的值进行比较,选取大于且邻近第一余数值的要求突发长度为第一目标要求突发长度;第一商值加一表征为突发长度传输请求的笔数,依据第一余数值和第一目标要求突发长度得到传输数据中非真实数据的笔数。
若存在要求突发长度的值大于实际突发长度的值,选取大于且邻近实际突发长度的要求突发长度为第二目标要求突发长度;依据第二目标要求突发长度得到传输数据中非真实数据的笔数,确定突发长度传输请求的笔数为1。
应理解,在实际突发长度的值大于所有的要求突发长度的值的情况下,将实际突发长度的值与所有的要求突发长度中的最大值相除得到的第一商值最小;选取大于且邻近第一余数值的要求突发长度为第一目标要求突发长度,可以使传输数据中非真实数据的笔数最小。
其中,共产生第一商值加一笔传输数据,其中一笔传输数据由真实数据和非真实数据组成,非真实数据的笔数为第一目标要求突发长度的值减去第一余数值,真实数据的笔数为第一余数值;另外第一商值笔传输数据由真实数据组成,真实数据的笔数为所有的要求突发长度中的最大值。
在要求突发长度的值大于实际突发长度的值的情况下,选取大于且邻近实际突发长度的要求突发长度为第二目标要求突发长度,可以使传输数据中非真实数据的笔数最小,也可以使突发长度传输请求的笔数最小。
其中,共产生1笔传输数据,该笔传输数据由真实数据和非真实数据组成,非真实数据的笔数为第二目标要求突发长度的值减去实际突发长度的值,真实数据的笔数为实际突发长度的值。
如图3所示,为突发长度拆分装置100的另一种结构示意图。该突发长度拆分装置100还包括仲裁模块130,仲裁模块130用于根据请求仲裁机制从多个请求信号中确定的最先处理的请求信号为目标请求信号。
在本公开中,仲裁模块130将每个请求信号的等待次数与第二预设阈值进行比较;若存在等待次数大于或等于第二预设阈值的情况,则将该等待次数对应的请求信号确定为最先进行处理的请求信号;若存在等待次数小于第二预设阈值的情况,则根据每个请求信号的优先级高低和接收顺序确定目标请求信号。
仲裁模块130还用于在接收目标请求信号之后,对早于目标请求信号接收的请求信号对应的等待次数进行加1处理。
请求信号的等待次数可以理解为后被仲裁模块130接收的请求信号,却优先被仲裁模块130处理的次数。若按照时间先后顺序依次发送6条请求信号,分别为请求信号1、请求信号2、请求信号3、请求信号4、请求信号5和请求信号6。请求信号1为最先被仲裁模块130接收的请求信号,请求信号2、请求信号3、请求信号4、请求信号5和请求信号6为后续依次被仲裁模块130接收的请求信号。若因为请求信号2、请求信号3、请求信号4、请求信号5和请求信号6的优先级均高于请求信号1,请求信号2、请求信号3、请求信号4、请求信号5和请求信号6先被仲裁模块130处理,请求信号1的等待次数则为5。
为了防止优先级较低的请求信号1一直处于不能被响应的状态,在请求信号1的等待次数大于或等于第二预设阈值的情况下,则会将请求信号1确定为最先进行处理的请求信号。若第二预设阈值为2,在请求信号2和请求信号3被处理后,则会处理请求信号1,而不会因为请求信号1的优先级低于请求信号4,而优先处理请求信号4。
若仲裁模块130接收的6条请求信号的等待次数均小于第二预设阈值,则根据每个请求信号的优先级高低确定目标请求信号,若最高优先级存在多个请求信号,则根据接收多个请求信号的顺序确定目标请求信号。
在本公开中,请求信号的优先级可以用ID(IDentity,身份标识)号表示。
请继续参照图3,该突发长度拆分装置100还包括请求队列140,请求队列140用于接收并存储上游设备200发送的请求信号,并将请求信号发送至仲裁模块130。
请继续参照图3,该突发长度拆分装置100还包括响应模块150,若请求信号为写请求信号,响应模块150用于接收下游设备300的写响应,基于写响应传输数据组成成拆分前的待处理数据;响应模块150还用于将写响应相关信号反馈给上游设备200。
若请求信号为读请求信号,响应模块150用于产生与读响应相关的信号,并反馈给上游设备200;响应模块150还用于接收下游设备300的读响应,若下游设备300反馈的读响应为因为请求拆分而产生的冗余请求的响应,则丢弃冗余请求的响应。
请继续参照图3,该突发长度拆分装置100还包括配置模块160,配置模块160通过APB接口与控制器400连接。配置模块160包括多个寄存器,通过控制器400对配置模块160的寄存器进行配置。
其中,处理器可以采用微控制单元(Microcontroller Unit,MCU),还可以采用中央处理器(Central Processing Unit,CPU)和数字信号处理器(Digital SignalProcessing,DSP)等。
配置模块160可以包括第一优先级调度寄存器、第二优先级调度寄存器、第一拆分寄存器、第二拆分寄存器和挂起请求寄存器。
通过控制器400可以将第一优先级调度寄存器置0,使能读通道的请求仲裁机制,即仲裁模块130在第一优先级调度寄存器置0的情况下,根据请求仲裁机制从多个读请求信号中确定目标请求信号。
通过控制器400可以将第二优先级调度寄存器置0,使能写通道的请求仲裁机制,即仲裁模块130在第二优先级调度寄存器置0的情况下,根据请求仲裁机制从多个写请求信号中确定目标请求信号。
在下游设备300的挂起请求的笔数小于第一预设阈值的情况下,通过控制器400可以将挂起请求寄存器置1,拆分模块在挂起请求寄存器置1的情况下,基于至少一个要求突发长度获得的突发长度组合使得突发长度传输请求的笔数最少。
在下游设备300的挂起请求的笔数大于或等于第一预设阈值的情况下,通过控制器400可以将挂起请求寄存器置0,拆分模块在挂起请求寄存器置0的情况下,基于至少一个要求突发长度获得的突发长度组合使得传输数据中非真实数据的笔数最少。
通过控制器400可以将第一拆分寄存器置0,使能读通道的突发长度拆分功能,即拆分模块在第一拆分寄存器置0的情况下,根据下游设备300的挂起请求能力和下游设备300支持的至少一个要求突发长度确定目标请求信号对应的待处理数据的突发长度组合,根据突发长度组合拆分待处理数据得到传输数据。其中,目标请求信号为读请求信号。
通过控制器400可以将第二拆分寄存器置0,使能写通道的突发长度拆分功能,即拆分模块在第二拆分寄存器置0的情况下,根据下游设备300的挂起请求能力和下游设备300支持的至少一个要求突发长度确定目标请求信号对应的待处理数据的突发长度组合,根据突发长度组合拆分待处理数据得到传输数据。其中,目标请求信号为写请求信号。
下面在图2和图3示出的突发长度拆分装置100的基础上,本公开实施例还提供一种突发长度拆分方法,请参照图4,图4为本公开实施例提供的一种突发长度拆分方法的流程示意图,该突发长度拆分方法可以包括以下步骤:
S501,接收目标请求信号。
在本公开中,目标请求信号为根据请求仲裁机制从多个请求信号中确定的最先处理的请求信号。
在本公开中,可以将每个请求信号的等待次数与第二预设阈值进行比较;若存在等待次数大于或等于第二预设阈值的情况,则将该等待次数对应的请求信号确定为最先进行处理的请求信号;若存在等待次数小于第二预设阈值的情况,则根据每个请求信号的优先级高低和接收顺序确定目标请求信号。
在接收目标请求信号之后,对早于目标请求信号接收的请求信号对应的等待次数进行加1处理。
S502,根据下游设备的挂起请求能力和下游设备支持的至少一个要求突发长度确定目标请求信号对应的待处理数据的突发长度组合。
S503,根据突发长度组合拆分待处理数据得到传输数据。
在本公开中,将下游设备300支持的挂起请求的笔数与第一预设阈值进行比较;若挂起请求的笔数大于或等于第一预设阈值,则基于至少一个要求突发长度获得的突发长度组合使得传输数据中非真实数据的笔数最少;若挂起请求的笔数小于第一预设阈值,则基于至少一个要求突发长度获得的突发长度组合使得突发长度传输请求的笔数最少。
基于至少一个要求突发长度获得的突发长度组合使得传输数据中非真实数据的笔数最少的原理为:将至少一个要求突发长度按照不同排序生成多个突发长度序列;将待处理数据的实际突发长度Y与每个突发长度序列Xi分别进行取模运算,根据取模运算的商值和模数确定每个突发长度序列Xi对应的候选突发长度组合Zi;取模运算的公式表达为:
Ki=((((Y%Xi,1)%Xi,2)···)% Xi,n-1)%Xi,n;
qi= qi,1+ qi,2+···+qi,n,qi,1为Y/ Xi,1的商值,qi,2为(Y% Xi,1)/ Xi,2的商值,qi,n为((((Y%Xi,1)%Xi,2)···)% Xi,n-1)/ Xi,n的商值;
Zi=(qi,0)(Ki=0);
Zi=(qi,Xi,j- Ki)(Ki≠0);
其中,在Ki=0的情况下依据第i个候选突发长度组合拆分的传输数据中非真实数据的笔数为0,第i个候选突发长度组合中突发长度传输请求的笔数为qi;Ki≠0的情况下依据第i个候选突发长度组合拆分的传输数据中非真实数据的笔数为Xi,j- Ki,第i个候选突发长度组合中突发长度传输请求的笔数为qi+1;n表征第i个突发长度序列中共有n个元素,元素表征要求突发长度,Xi,j 为第i个候选突发长度序列中计算得到Ki的目标元素。
请求拆分模块120还用于从所有候选突发长度组合Zi中选择传输数据中非真实数据的笔数最少的候选突发长度组合为目标候选突发长度组合,若目标候选突发长度组合为多个,从多个目标候选突发长度组合中选择突发长度传输请求的笔数最少的目标候选突发长度组合为突发长度组合,若目标候选突发长度组合为一个,则将目标候选突发长度组合确定为突发长度组合。
基于至少一个要求突发长度获得的突发长度组合使得突发长度传输请求的笔数最少的原理为:将待处理数据的实际突发长度与所有的要求突发长度进行比较;若实际突发长度的值大于所有的要求突发长度的值,将实际突发长度的值与所有的要求突发长度中的最大值相除,得到第一商值和第一余数值,将第一余数值与所有的要求突发长度的值进行比较,选取大于且邻近第一余数值的要求突发长度为第一目标要求突发长度;第一商值加一表征为突发长度传输请求的笔数,依据第一余数值和第一目标要求突发长度得到传输数据中非真实数据的笔数。
若存在要求突发长度的值大于实际突发长度的值,选取大于且邻近实际突发长度的要求突发长度为第二目标要求突发长度;依据第二目标要求突发长度得到传输数据中非真实数据的笔数,确定突发长度传输请求的笔数为1。
可以理解,步骤S501- S503的具体实现原理,可以参照上述突发长度拆分装置100的具体实现原理。
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。
Claims (11)
1.一种突发长度拆分方法,其中,所述方法包括:
接收目标请求信号;
将下游设备支持的挂起请求的笔数与第一预设阈值进行比较;
若所述挂起请求的笔数大于或等于所述第一预设阈值,则基于所述下游设备支持的至少一个要求突发长度获得所述目标请求信号对应的待处理数据的突发长度组合,所述突发长度组合使得传输数据中非真实数据的笔数最少;
若所述挂起请求的笔数小于所述第一预设阈值,则基于所述下游设备支持的至少一个要求突发长度获得所述目标请求信号对应的待处理数据的突发长度组合,所述突发长度组合使得突发长度传输请求的笔数最少;
根据所述突发长度组合拆分所述待处理数据得到传输数据。
2.根据权利要求1所述的突发长度拆分方法,其中,所述若所述挂起请求的笔数大于或等于所述第一预设阈值,则基于所述下游设备支持的至少一个要求突发长度获得所述目标请求信号对应的待处理数据的突发长度组合,所述突发长度组合使得传输数据中非真实数据的笔数最少的步骤包括:
将所述至少一个要求突发长度按照不同排序生成多个突发长度序列;
将所述待处理数据的实际突发长度Y与每个所述突发长度序列Xi分别进行取模运算,根据所述取模运算的商值和模数确定每个所述突发长度序列Xi对应的候选突发长度组合Zi;所述取模运算的公式表达为:
Ki=((((Y%Xi,1)%Xi,2)···)% Xi,n-1)%Xi,n;
qi= qi,1+ qi,2+···+qi,n,qi,1为Y/ Xi,1的商值,qi,2为(Y% Xi,1)/ Xi,2的商值,qi,n为((((Y%Xi,1)%Xi,2)···)% Xi,n-1)/ Xi,n的商值;
Zi=(qi,0)(Ki=0);
Zi=(qi+1,Xi,j- Ki)(Ki≠0);
在Ki=0的情况下依据第i个候选突发长度组合拆分的传输数据中非真实数据的笔数为0,第i个候选突发长度组合中突发长度传输请求的笔数为qi;Ki≠0的情况下依据第i个候选突发长度组合拆分的传输数据中非真实数据的笔数为Xi,j- Ki,第i个候选突发长度组合中突发长度传输请求的笔数为qi+1;n表征第i个突发长度序列中共有n个元素,所述元素表征所述要求突发长度;在Ki=0的情况下Xi,j 为第i个候选突发长度序列中计算得到Ki的目标元素,在Ki≠0的情况下Xi,j 为第i个候选突发长度序列中大于且邻近Ki的目标元素;
从所有所述候选突发长度组合中选择传输数据中非真实数据的笔数最少的候选突发长度组合为目标候选突发长度组合;
若所述目标候选突发长度组合为多个,从多个所述目标候选突发长度组合中选择突发长度传输请求的笔数最少的目标候选突发长度组合为所述突发长度组合;
若所述目标候选突发长度组合为一个,则将所述目标候选突发长度组合确定为所述突发长度组合。
3.根据权利要求1所述的突发长度拆分方法,其中,所述若所述挂起请求的笔数小于所述第一预设阈值,则基于所述下游设备支持的至少一个要求突发长度获得所述目标请求信号对应的待处理数据的突发长度组合,所述突发长度组合使得突发长度传输请求的笔数最少的步骤包括:
将所述待处理数据的实际突发长度与所有的要求突发长度进行比较;
若所述实际突发长度的值大于所有的要求突发长度的值,将所述实际突发长度的值与所有的要求突发长度中的最大值相除,得到第一商值和第一余数值,将所述第一余数值与所有的要求突发长度的值进行比较,选取大于且邻近所述第一余数值的要求突发长度为第一目标要求突发长度;所述第一商值加一表征为所述突发长度传输请求的笔数,依据所述第一余数值和所述第一目标要求突发长度得到所述传输数据中非真实数据的笔数;
若存在所述要求突发长度的值大于所述实际突发长度的值,选取大于且邻近所述实际突发长度的要求突发长度为第二目标要求突发长度;依据所述第二目标要求突发长度得到所述传输数据中非真实数据的笔数,确定所述突发长度传输请求的笔数为1。
4.根据权利要求1所述的突发长度拆分方法,其中,所述目标请求信号为根据请求仲裁机制从多个请求信号中确定的最先处理的请求信号。
5.根据权利要求4所述的突发长度拆分方法,其中,根据请求仲裁机制从多个请求信号中确定最先处理的请求信号的步骤包括:
将每个请求信号的等待次数与第二预设阈值进行比较;
若存在等待次数大于或等于所述第二预设阈值的情况,则将该等待次数对应的请求信号确定为最先进行处理的请求信号;
若存在等待次数小于所述第二预设阈值的情况,则根据每个请求信号的优先级高低和接收顺序确定目标请求信号。
6.根据权利要求5所述的突发长度拆分方法,其中,接收所述目标请求信号之后,所述方法还包括:对早于目标请求信号接收的请求信号对应的等待次数进行加1处理。
7.一种突发长度拆分装置,其中,包括:请求接收模块和请求拆分模块;
所述请求接收模块,用于接收目标请求信号;
所述请求拆分模块,用于将下游设备支持的挂起请求的笔数与第一预设阈值进行比较;
所述请求拆分模块,还用于若所述挂起请求的笔数大于或等于所述第一预设阈值,则基于所述下游设备支持的至少一个要求突发长度获得所述目标请求信号对应的待处理数据的突发长度组合,所述突发长度组合使得传输数据中非真实数据的笔数最少;
所述请求拆分模块,还用于若所述挂起请求的笔数小于所述第一预设阈值,则基于所述下游设备支持的至少一个要求突发长度获得所述目标请求信号对应的待处理数据的突发长度组合,所述突发长度组合使得突发长度传输请求的笔数最少;
所述请求拆分模块,还用于根据所述突发长度组合拆分所述待处理数据得到所述传输数据。
8.如权利要求7所述的突发长度拆分装置,其中,在所述挂起请求的笔数大于或等于所述第一预设阈值的情况下,所述请求拆分模块,还用于将所述至少一个要求突发长度按照不同排序生成多个突发长度序列Xi;
所述请求拆分模块,还用于将所述待处理数据的实际突发长度Y与每个所述突发长度序列Xi分别进行取模运算,根据所述取模运算的商值和模数确定每个所述突发长度序列Xi对应的候选突发长度组合Zi;所述取模运算的公式表达为:
Ki=((((Y%Xi,1)%Xi,2)···)% Xi,n-1)%Xi,n;
qi= qi,1+ qi,2+···+qi,n,qi,1为Y/ Xi,1的商值,qi,2为(Y% Xi,1)/ Xi,2的商值,qi,n为((((Y%Xi,1)%Xi,2)···)% Xi,n-1)/ Xi,n的商值;
Zi=(qi,0)(Ki=0);
Zi=(qi,Xi,j- Ki)(Ki≠0);
在Ki=0的情况下依据第i个候选突发长度组合拆分的传输数据中非真实数据的笔数为0,第i个候选突发长度组合中突发长度传输请求的笔数为qi;Ki≠0的情况下依据第i个候选突发长度组合拆分的传输数据中非真实数据的笔数为Xi,j- Ki,第i个候选突发长度组合中突发长度传输请求的笔数为qi+1;n表征第i个突发长度序列中共有n个元素,所述元素表征所述要求突发长度;在Ki=0的情况下Xi,j 为第i个候选突发长度序列中计算得到Ki的目标元素,在Ki≠0的情况下Xi,j 为第i个候选突发长度序列中大于且邻近Ki的目标元素;
所述请求拆分模块,还用于从所有所述候选突发长度组合Zi中选择传输数据中非真实数据的笔数最少的候选突发长度组合为目标候选突发长度组合,若所述目标候选突发长度组合为多个,从多个所述目标候选突发长度组合中选择突发长度传输请求的笔数最少的目标候选突发长度组合为所述突发长度组合,若所述目标候选突发长度组合为一个,则将所述目标候选突发长度组合确定为所述突发长度组合。
9.如权利要求7所述的突发长度拆分装置,其中,在所述挂起请求的笔数小于所述第一预设阈值的情况下,所述请求拆分模块,还用于将所述待处理数据的实际突发长度与所有的要求突发长度进行比较;
所述请求拆分模块,还用于在所述实际突发长度的值大于所有的要求突发长度的值的情况下,将所述实际突发长度的值与所有的要求突发长度中的最大值相除,得到第一商值和第一余数值,将所述第一余数值与所有的要求突发长度的值进行比较,选取大于且邻近所述第一余数值的要求突发长度为第一目标要求突发长度;所述第一商值加一表征为所述突发长度传输请求的笔数,依据所述第一余数值和所述第一目标要求突发长度得到所述传输数据中非真实数据的笔数;
所述请求拆分模块,还用于在存在所述要求突发长度的值大于所述实际突发长度的值的情况下,选取大于且邻近所述实际突发长度的要求突发长度为第二目标要求突发长度;依据所述第二目标要求突发长度得到所述传输数据中非真实数据的笔数,确定所述突发长度传输请求的笔数为1。
10.一种芯片系统,其中,包括如权利要求7-9任一项所述的突发长度拆分装置,上游设备通过所述突发长度拆分装置与下游设备通信连接。
11.一种电子设备,其中,包括权利要求10所述的芯片系统。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210941399.8A CN115017072B (zh) | 2022-08-08 | 2022-08-08 | 突发长度拆分方法、装置、芯片系统和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210941399.8A CN115017072B (zh) | 2022-08-08 | 2022-08-08 | 突发长度拆分方法、装置、芯片系统和电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115017072A CN115017072A (zh) | 2022-09-06 |
CN115017072B true CN115017072B (zh) | 2022-11-04 |
Family
ID=83066234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210941399.8A Active CN115017072B (zh) | 2022-08-08 | 2022-08-08 | 突发长度拆分方法、装置、芯片系统和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115017072B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101847131A (zh) * | 2009-03-27 | 2010-09-29 | 索尼公司 | 存储器控制装置 |
CN102932696A (zh) * | 2012-09-29 | 2013-02-13 | 西安空间无线电技术研究所 | 一种星载高速数据复接器系统及实现方法 |
US10942878B1 (en) * | 2020-03-26 | 2021-03-09 | Arm Limited | Chunking for burst read transactions |
CN114063932A (zh) * | 2021-11-26 | 2022-02-18 | 新华三技术有限公司合肥分公司 | 数据存储方法、读取方法及电子设备 |
-
2022
- 2022-08-08 CN CN202210941399.8A patent/CN115017072B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101847131A (zh) * | 2009-03-27 | 2010-09-29 | 索尼公司 | 存储器控制装置 |
CN102932696A (zh) * | 2012-09-29 | 2013-02-13 | 西安空间无线电技术研究所 | 一种星载高速数据复接器系统及实现方法 |
US10942878B1 (en) * | 2020-03-26 | 2021-03-09 | Arm Limited | Chunking for burst read transactions |
CN114063932A (zh) * | 2021-11-26 | 2022-02-18 | 新华三技术有限公司合肥分公司 | 数据存储方法、读取方法及电子设备 |
Non-Patent Citations (1)
Title |
---|
基于大小突发块划分的微信支付行为识别模型;梁登高 等;《计算机应用》;20200731;第40卷(第7期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN115017072A (zh) | 2022-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102906726B (zh) | 协处理加速方法、装置及系统 | |
EP2312457B1 (en) | Data processing apparatus, data processing method and computer-readable medium | |
CN103218329A (zh) | 数字信号处理数据传输 | |
US20230132724A1 (en) | Broadcast adapters in a network-on-chip | |
CN111289975A (zh) | 一种多gpu并行计算的快速成像处理系统 | |
CN114121055A (zh) | 内存互连架构系统和方法 | |
US7000041B2 (en) | Method and an apparatus to efficiently handle read completions that satisfy a read request | |
US8539131B2 (en) | Root hub virtual transaction translator | |
CN115017072B (zh) | 突发长度拆分方法、装置、芯片系统和电子设备 | |
CN116303221B (zh) | 一种多核处理器片上网络系统的数据传输方法 | |
CN111078286B (zh) | 数据通信方法、计算系统和存储介质 | |
CN116661703A (zh) | 存储器访问电路及存储器访问方法、集成电路和电子设备 | |
US20050060452A1 (en) | System and method for generating bus requests in advance based on speculation states | |
KR102326892B1 (ko) | 적응형 트랜잭션 처리 방법 및 이를 위한 장치 | |
US10769079B2 (en) | Effective gear-shifting by queue based implementation | |
CN115576661A (zh) | 数据处理系统、方法和控制器 | |
CN111260046B (zh) | 运算方法、装置及相关产品 | |
CN112148453A (zh) | 用于隐私计算的计算芯片及网络计算系统 | |
US10216671B2 (en) | Power aware arbitration for bus access | |
CN102033808B (zh) | Dsp中的数据存储方法和存储控制装置 | |
CN106940684A (zh) | 一种按比特写数据的方法及装置 | |
US20190179778A1 (en) | System memory controller with client preemption | |
US20190179540A1 (en) | Concurrent access for multiple storage devices | |
CN114490465B (zh) | 用于直接存储器访问的数据传输方法和装置 | |
CN115495399B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20240115 Address after: 401135 No. 618 Liangjiang Avenue, Longxing Town, Yubei District, Chongqing Patentee after: Xiangdixian Computing Technology (Chongqing) Co.,Ltd. Address before: Room 901, 901, floor 9 (09), building 1, yard 5, Anding Road, Chaoyang District, Beijing 100029 Patentee before: Beijing xiangdixian Computing Technology Co.,Ltd. |
|
TR01 | Transfer of patent right |