CN116488956B - 通信装置、通信方法、总线及存储介质 - Google Patents
通信装置、通信方法、总线及存储介质 Download PDFInfo
- Publication number
- CN116488956B CN116488956B CN202310700742.4A CN202310700742A CN116488956B CN 116488956 B CN116488956 B CN 116488956B CN 202310700742 A CN202310700742 A CN 202310700742A CN 116488956 B CN116488956 B CN 116488956B
- Authority
- CN
- China
- Prior art keywords
- request
- sent
- unit
- storage unit
- 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.)
- Active
Links
- 238000004891 communication Methods 0.000 title claims abstract description 78
- 238000000034 method Methods 0.000 title claims abstract description 27
- 230000004044 response Effects 0.000 claims abstract description 114
- 238000012545 processing Methods 0.000 claims abstract description 45
- 238000013500 data storage Methods 0.000 claims abstract description 42
- 238000012546 transfer Methods 0.000 claims abstract description 27
- 239000000725 suspension Substances 0.000 claims description 35
- 230000005540 biological transmission Effects 0.000 abstract description 12
- 230000008569 process Effects 0.000 abstract description 5
- 230000015654 memory Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 241001522296 Erithacus rubecula Species 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000000739 chaotic effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40143—Bus networks involving priority mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/40006—Architecture of a communication node
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明涉及总线技术领域,公开了通信装置、通信方法、总线及存储介质。通信装置包括:译码处理单元用于对待发送请求中的地址信息进行译码处理,得到与待发送请求对应的从设备编号;数据存储单元用于存储待发送请求;请求查询单元用于根据查询到第一请求向请求搬运单元发送请求搬运指令;请求搬运单元用于根据请求搬运指令将数据存储单元中的待发送请求搬运至请求存储单元;请求存储单元用于接收并存储待发送请求;请求转移单元用于根据满足响应条件将待发送请求转移至发射单元;发射单元用于将待发送请求发送给目标从设备。本发明能够有效区分不同从设备的响应信息,避免了主设备处理数据混乱的情况,进而有效提高数据传输的带宽。
Description
技术领域
本发明涉及总线技术领域,具体涉及通信装置、通信方法、总线及存储介质。
背景技术
AXI 4.0协议是AMBA(Advanced Microcontroller Bus Architecture,高级微控制器总线架构)总线协议的一种。通过AXI 4.0总线协议进行通信的过程中,当同一个主设备向不同的从设备发送读请求或写请求时,如果发送的请求携带的是相同ID(Identitydocument,身份证标识号)信息,由于总线传输中线路上的延迟不确定以及从设备返回响应的时间不确定,导致主设备无法根据ID信息区分来自不同从设备的读响应或写响应,进而造成主设备处理数据的混乱,严重时会造成整个通信系统处理数据的错误,甚至系统崩溃或挂死。
针对上述相关技术中由于无法区分来自不同从设备的响应,造成主设备处理数据混乱的问题,目前尚未提出有效的解决方案。
发明内容
有鉴于此,本发明提供了一种通信装置、通信方法、总线及存储介质,以解决由于无法区分来自不同从设备的响应,造成主设备处理数据混乱的问题。
第一方面,本发明提供了一种通信装置,包括:
译码处理单元,与总线接口连接;所述译码处理单元用于对待发送请求中的地址信息进行译码处理,得到与所述待发送请求对应的从设备编号;所述总线接口还连接用于发出所述待发送请求的主设备;
数据存储单元,与所述译码处理单元连接;所述数据存储单元用于存储所述待发送请求,所述待发送请求包含请求编号;
请求查询单元,与所述数据存储单元、请求搬运单元以及发射单元分别连接;所述请求查询单元用于对数据存储单元输出的待发送请求进行查询,以判断是否存在第一请求;如果存在第一请求,则根据查询到第一请求向所述请求搬运单元发送请求搬运指令;如果不存在第一请求,则将数据存储单元输出的待发送请求发送至发射单元;所述第一请求表示与所述待发送请求具有相同请求编号和不同从设备编号的飞行请求,所述飞行请求表示已发出但未响应的请求;
所述请求搬运单元,用于根据所述请求搬运指令将所述数据存储单元中的所述待发送请求搬运至请求存储单元;
所述请求存储单元与请求转移单元连接,用于接收并存储所述待发送请求,以及将所述待发送请求发送给请求转移单元;
请求转移单元,用于根据满足响应条件将所述待发送请求转移至发射单元,所述响应条件为与所述待发送请求具有相同请求编号的飞行请求全部被响应,以及所述请求存储单元中排在所述待发送请求前面的且与所述待发送请求具有相同请求编号的请求全部被清空;
所述发射单元,用于将所述待发送请求发送给目标从设备。
本发明提供的通信装置通过请求查询单元、请求搬运单元、请求存储单元以及请求转移单元之间的协同配合,即根据查询到第一请求控制请求搬运单元将待发送请求搬运工至请求存储单元进行存储,直至达到满足响应条件时请求转移单元将待发送请求转移至发射单元进行发射,能够有效区分不同从设备的响应信息,避免了主设备由于难以区分不同从设备的响应信息而导致处理数据混乱的情况,进而有效提高数据传输的带宽。
在一种可选的实施方式中,所述通信装置还包括:
响应接收单元,用于接收所述从设备发送的用于响应所述待发送请求的响应信息,并将所述响应信息返回给所述主设备。
在一种可选的实施方式中,所述通信装置还包括:
第一生成单元,设置于所述译码处理单元与所述数据存储单元之间,所述第一生成单元用于生成第一悬挂编号,所述第一悬挂编号表示所述待发送请求的悬挂编号,用于查询与所述待发送请求对应的数据;
第二生成单元,用于生成第二悬挂编号,所述第二悬挂编号表示与所述待发送请求对应的数据的悬挂编号;
所述发射单元还用于根据第一悬挂编号与所述第二悬挂编号确定与所述待发送请求相匹配的数据,并将所述数据发送给所述目标从设备。
本发明提供的通信装置通过第一悬挂编号和第二悬挂编号,能够有效查询到与待发送请求对应的数据,从而提高数据写入的准确性。
在一种可选的实施方式中,所述待发送请求为读请求;
所述译码处理单元与所述总线接口之间通过读地址通道连接;
所述响应接收单元与所述总线接口之间通过读数据通道连接。
在一种可选的实施方式中,所述待发送请求为写请求;
所述译码处理单元与所述总线接口之间通过写地址通道连接;
所述第二生成单元与所述总线接口之间通过写数据通道连接;
所述响应接收单元与所述总线接口之间通过写响应通道连接。
本发明提供的通信装置,根据待发送请求的类型将译码处理单元与总线接口的对应通道进行连接,能够对写请求或读请求的发送顺序进行有效控制,从而保证有效区分不同从设备的响应信息,避免了主设备处理数据混乱的情况,进而有效提高数据传输的带宽。
在一种可选的实施方式中,所述通信装置还包括:
仲裁单元,用于根据多个待发送请求的优先级,从所述多个待发送请求中仲裁出目标待发送请求,并将所述目标待发送请求发送给发射单元。
在一种可选的实施方式中,所述通信装置还包括:
飞行请求记录单元,用于所述飞行请求进行记录。
第二方面,本发明提供了一种通信总线,包括上述第一方面所述的通信装置。
第三方面,本发明提供了一种通信方法,应用于通信装置,包括:
对待发送请求中的地址信息进行译码处理,得到与所述待发送请求对应的从设备编号;存储所述待发送请求,所述待发送请求包含请求编号;
对数据存储单元输出的待发送请求进行查询,以判断是否存在第一请求;如果存在第一请求,则根据查询到第一请求向所述请求搬运单元发送请求搬运指令;如果不存在第一请求,则将数据存储单元输出的待发送请求发送至发射单元;所述第一请求表示与所述待发送请求具有相同请求编号和不同从设备编号的飞行请求,所述飞行请求表示已发出但未响应的请求;
根据所述请求搬运指令将数据存储单元中的所述待发送请求搬运至请求存储单元;所述请求存储单元用于接收并存储所述待发送请求,以及将所述待发送请求发送给请求转移单元;
根据满足响应条件将所述待发送请求转移至发射单元,所述响应条件为与所述待发送请求具有相同请求编号的飞行请求全部被响应,以及所述请求存储单元中排在所述待发送请求前面的且与所述待发送请求具有相同请求编号的请求全部被清空;
将所述待发送请求发送给目标从设备。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第三方面或其对应的任一实施方式的通信方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的通信装置的一种结构框图;
图2是根据本发明实施例的通信装置的另一结构框图;
图3是根据本发明实施例的通信装置的再一结构框图;
图4是根据本发明实施例的通信装置的又一结构框图;
图5是根据本发明实施例中具有飞行请求记录单元的通信装置的结构框图;
图6是根据本发明实施例中具有分发单元的通信装置的结构框图;
图7是根据本发明实施例的通信装置的整体结构框图;
图8根据本发明实施例的通信方法的流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
AXI 4.0协议是AMBA(Advanced Microcontroller Bus Architecture,高级微控制器总线架构)总线协议的一种,该总线是基于ID(Identity document,身份证标识号)信息进行读写数据传输的顺序控制的。对于写传输来说,写地址通道(AW)会携带与写请求对应的请求标号(AWID);而对于读传输来说,读地址通道(AR)会携带与读请求对应的请求标号(ARID)。当同一个主设备(Master)发出的读或写请求发送至不同的从设备(Slave)时,如果该请求携带的都是不同的ID信息,则返回的读或写的响应也会携带相应的不同ID信息,则Master可以区分出不同的ID信息的情况。当同一个Master发出的读或写请求发送至不同的Slave时,如果该请求携带的都是相同的ID信息,由于总线传输中线路上的延迟不确定以及Slave返回响应的时间不确定,则Master无法根据ID区分来自不同Slave的读或写的响应,就会造成Master处理数据的混乱,严重时会造成整个系统处理数据的错误,甚至系统崩溃或挂死。
针对上述技术问题可以采取如下方法:
方法一:限制Master,使Master发出到达不同的Slave的请求必须是不同ID。这个方法将对Master以及上层软件的编程造成极大的限制。一方面,由于一般系统分配的ID位宽只有6比特位宽,那么Master可以发出的不同ID只有64种,对于多从设备(Slave)的系统来说,Slave的数量本身可能就超过64个,那么如果要求发往不同Slave的ID必须是不同的话,就会造成Master发出的数据读写的交易被阻塞或等待,从而降低整个系统的性能。另一方面,对Master来说,ID一般是按照业务类型进行管理的,而不是按照Slave进行区分的。因此这样做会要求软件在分配Master的不同业务时,还必须要考虑不同的Slave的影响,从而大幅度提高软件的编写复杂度,同时也会限制Master的行为,造成很大的性能损失或浪费。
方法二:不限制Master,Master可能会发出相同ID的读或写请求发往不同Slave的情况。但是总线如果判别到当前的ID请求已经存在了相同的ID的请求发往了与本ID不同的Slave,那么总线直接阻塞当前的请求以及之后的所有请求,直到前一个相同ID的请求返回读或写响应为止,再将这个请求下发下去。这种方法显然存在问题,如果Master中有很多相同ID发往不同的Slave的请求,那么整个系统的性能将会大大降低。
针对上述技术问题,本发明提供了一种通信装置,能够使Master可以自由发出不同ID的请求,包含相同ID发往不同Slave的请求,不限制Master的行为。同时由于本发明在通信总线上增加控制单元,能够在判断到相同的ID发往不同Slave的请求尚未收到响应时,阻塞该ID请求,但是放行不同ID的请求,能够在保证功能正确的前提下,最大限度的提高读或写数据传输的带宽。
实施例1:
本发明实施例提供了一种通信装置,包括:译码处理单元,与总线接口连接;译码处理单元用于对待发送请求中的地址信息进行译码处理,得到与待发送请求对应的从设备编号;总线接口还连接用于发出待发送请求的主设备;数据存储单元,与译码处理单元连接;数据存储单元用于存储待发送请求,待发送请求包含请求编号;请求查询单元,与数据存储单元、请求搬运单元分别连接;请求查询单元用于根据查询到第一请求向请求搬运单元发送请求搬运指令;第一请求表示与待发送请求具有相同请求编号和不同从设备编号的飞行请求,飞行请求表示已发出但未响应的请求;请求搬运单元,用于根据请求搬运指令将数据存储单元中的待发送请求搬运至请求存储单元;请求存储单元,用于接收并存储待发送请求;请求转移单元,用于根据满足响应条件将待发送请求转移至发射单元,响应条件为与待发送请求具有相同请求编号的飞行请求全部被响应,以及请求存储单元中排在待发送请求前面的且与待发送请求具有相同请求编号的请求全部被清空;发射单元,用于将待发送请求发送给目标从设备。通过本发明提供的通信装置,能够对有效区分来自不同从设备的响应信息,避免了主设备处理数据混乱的情况,进而有效提高读数据或写数据传输的带宽。
本实施例提供一种通信装置,图1是根据本发明实施例的通信装置的结构框图,如图1所示,包括:
译码处理单元101,与总线接口100连接,译码处理单元101用于对待发送请求中的地址信息进行译码处理,得到与待发送请求对应的从设备编号;总线接口还连接主设备。
在本发明实施例中,可以通过将译码处理单元101与AXI(Advanced eXtensibleInterface,高级可扩展接口)总线接口中的不同通道进行连接,达到发送不同请求的目的,例如:当待发送请求为写数据请求时,译码处理单元101可以与AXI总线接口中的写地址通道连接;当待发送请求为读数据请求时,译码处理单元101可以与AXI总线接口中的读地址通道连接。
在一个实施例中,译码处理单元101可以从地址通道中得到待发送请求的AXIAddress(即地址信息),对该地址信息进行译码处理(即编码的逆过程)得到对应的SlaveID(即从设备编号)。总线接口100的一端与一个或多个主设备连接,另一端与译码处理单元101,用于对应的主设备通过总线接口的地址通道向对应的从设备发送写请求或读请求。
数据存储单元102,与译码处理单元101连接,数据存储单元102用于存储待发送请求,待发送请求包含请求编号。
在本发明实施例中,数据存储单元102可以为用于缓存待发送请求的FIFO存储器(First Input First Output,先进先出),即第一个进入FIFO存储器内的请求数据会被第一个被移出,其中一个是存储器的输入口,另一个口是存储器的输出口。其中,FIFO存储器采用First-Word-Fall-Through结构,输出(dout)的数据始终可见,数据的转移(POP)会使dout的数据发生更新。
在一个实施例中,数据存储单元102可用于缓存待发送的写数据请求或者读数据请求,还可用于缓存待发送请求的请求编号、从设备编号以及相关控制信号(主要用于握手机制)。
请求查询单元103,与数据存储单元102、请求搬运单元104以及发射单元107分别连接,请求查询单元103用于根据查询到第一请求向请求搬运单元104发送请求搬运指令;第一请求表示与待发送请求具有相同请求编号和不同从设备编号的飞行请求,飞行请求表示已发出但未响应的请求。
在本发明实施例中,请求查询单元103会针对数据存储单元输出的待发送请求进行查询,以判断是否存在第一请求,即是否存在与待发送请求具有相同请求编号和不同从设备编号的飞行请求,这里的飞行请求是指已经发出但尚未返回响应的写请求或读请求。如果请求查询单元103查询存在第一请求,请求查询单元会根据查询到第一请求向所述请求搬运单元发送请求搬运指令,以使请求搬运单元根据所述请求搬运指令将所述数据存储单元中的所述待发送请求搬运至请求存储单元;如果请求查询单元103查询不存在第一请求时,会将数据存储单元102输出的待发送请求直接发送至发射单元107。
请求搬运单元104,用于根据请求搬运指令将数据存储单元102中的待发送请求搬运至请求存储单元。
在本发明实施例中,当请求查询单元103查询存在第一请求时,请求查询单元103会向请求搬运单元104发送与待发送请求对应的请求搬运指令,以使请求搬运单元104根据请求搬运指令将数据存储单元102输出的待发送请求搬运至请求存储单元105。
请求存储单元105,所述请求存储单元105与请求转移单元106连接,所述请求存储单元105用于接收并存储待发送请求,以及将所述待发送请求发送给请求转移单元。
在本发明实施例中,请求存储单元105可以用于存储待发送请求,该待发送请求是请求搬运单元104根据请求搬运指令从数据存储单元102搬运得到的;请求存储单元105还可以用于将所述待发送请求发送给请求转移单元,以使请求转移单元106根据满足响应条件将待发送请求转移至发射单元107。请求存储单元105中存储的每个待发送请求均具有相同请求编号和不同从设备编号的飞行请求。
请求转移单元106,用于根据满足响应条件将待发送请求转移至发射单元107,响应条件为与待发送请求具有相同请求编号的飞行请求全部被响应,以及请求存储单元105中排在待发送请求前面的且与待发送请求具有相同请求编号的请求全部被清空。
在本发明实施例中,上述响应条件可以包括条件1和条件2,当条件1和条件2同时满足时才可以将待发送请求转移至发射单元107。
条件1为与待发送请求具有相同请求编号的飞行请求全部被响应,这里的“相同”是指飞行请求的请求编号与待发送请求的请求编号相同。
条件2为请求存储单元105中排在待发送请求前面的且与待发送请求具有相同请求编号的请求全部被清空,根据以下实例进行条件2进行说明:
当请求存储单元中存在A1-A2-A3-A4-A5五个待发送请求时,其中A1、A3和A5为具有相同请求编号1的三个待发送请求,A5的发送需要在A1和A3先后依次发出后进行;A2和A4为具有相同请求编号2的两个待发送请求,A4的发送需要在A2发出后进行。A2和A4的发出与A1、A3和A5的发出之间无关联。
或者请求存储单元中存在A1-A2-A3、A4-A5、A6三组待发送请求时,其中A1、A2和A3具有相同请求编号1的三个待发送请求,A3的发送需要在A1和A2先后依次发出后进行;A4和A5具有相同请求编号2的两个待发送请求,A5的发送需要在A4发出后进行;待发送请求A6只需要满足上述条件1即可被发出。
在一个实施例中,在利用请求搬运单元104将待发送请求搬运至请求存储单元105时,会根据请求的搬运时间依次对具有相同请求编号的待发送请求进行存储,即先入先出,例如在存入时会根据对应请求的搬运时间先后向请求存储单元105依次存入A1、A2、A3和A4,在发出时会先后依次发出A1、A2、A3和A4。
本发明通过同时满足条件1和条件2,能够有效避免出现“相同请求编号的请求发送给不同的从设备,导致主设备无法根据ID信息区分来自不同从设备的读响应或写响应,进而造成主设备处理数据的混乱”问题。
发射单元107,用于将待发送请求发送给目标从设备108。
在本实施例中,该目标从设备是指与待发送请求的从设备编号对应的从设备,该目标从设备可以为包含多个从设备的网络中的任意一个。
在一些可选的实施方式中,如图2所示,通信装置还包括:
响应接收单元109,用于接收从设备发送的用于响应待发送请求的响应信息,并将响应信息返回给主设备。
在本发明实施例中,响应接收单元109可以通过目标从设备108可以接收到读响应信息和/或写响应信息,然后将其响应信息按照总线接口100中对应的通道分发给对应的主设备,其中,当响应信息为读响应时,响应接收单元109会与总线接口100的读数据通道连接,并通过读数据通道将读响应信息返回给对应主设备;当响应信息为写响应时,响应接收单元109会与总线接口100的写响应通道连接,并通过写响应通道将写响应信息返回给对应主设备。
在一些可选的实施方式中,如图3所示,通信装置还包括:
第一生成单元110,设置于译码处理单元101与数据存储单元102之间,第一生成单元110用于生成第一悬挂编号,第一悬挂编号表示待发送请求的悬挂编号,用于查询与待发送请求对应的数据;
第二生成单元111,用于生成第二悬挂编号,第二悬挂编号表示与待发送请求对应的数据的悬挂编号;
发射单元107还用于根据第一悬挂编号与第二悬挂编号确定与待发送请求相匹配的数据,并将数据发送给目标从设备。
在本发明实施例中,待发送请求为待发送写请求;发射单元可以根据接收到的第一悬挂编号和第二悬挂编号,建立待发送写请求与写数据之间的关联,从而便于根据待发送写请求查询与待发送写请求对应的写数据。
在一个实施例中,第二生成单元111的一端与总线接口100的写数据通道连接,另一端与发射单元107连接。
在一个实施例中,通信装置还包括数据缓存单元,一端与第二生成单元111连接,另一端与发射单元107连接,数据缓存单元用于缓存与待发送写请求对应的写数据,以及携带写数据的悬挂号。发射单元可以通过悬挂号查询出待发送写请求的写数据。
在一些可选的实施方式中,待发送请求为读请求;译码处理单元101与总线接口100之间通过读地址通道连接;响应接收单元109与总线接口100之间通过读数据通道连接。
在本发明实施例中,当待发送请求为读请求时,译码处理单元101与总线接口100的读地址通道连接,通过读地址通道读取读请求的地址信息、请求编号以及控制信息等;响应接收单元109与总线接口100的读数据通道连接,通过读数据通道向主设备发送读响应信息(可以包含响应信号和相应读数据)。
在一些可选的实施方式中,待发送请求为写请求;译码处理单元101与总线接口100之间通过写地址通道连接;第二生成单元111与总线接口100之间通过写数据通道连接;响应接收单元109与总线接口100之间通过写响应通道连接。
在本发明实施例中,当待发送请求为写请求时,译码处理单元101与总线接口100的写地址通道连接,通过写地址通道读取写请求的地址信息、请求编号以及控制信息等;第二生成单元111与总线接口100的写数据通道连接,通过写数据通道向目标从设备写入对应的写数据;响应接收单元109与总线接口100之间通过写响应通道连接,通过写响应通道可以向主设备发送写响应信息(可以包含写数据的写入情况)。
在一些可选的实施方式中,如图4所示:通信装置还包括仲裁单元112;
仲裁单元112用于根据多个待发送请求的优先级,从多个待发送请求中仲裁出目标待发送请求,并将目标待发送请求发送给发射单元。
在本发明实施例中,仲裁单元112可以为循环优先级仲裁器(RoundRobinarbiter),该仲裁器时基于轮询调度(Round Robin)算法实现。其中,Round Robin就是考虑到公平性的一种仲裁算法。其基本思路是,当一个要求(request)得到了许可(grant)之后,它的优先级在接下来的仲裁中就变成了最低,也就是说每个request的优先级不是固定的,而是会在最高(获得了grant)之后变为最低,并且根据其他request的许可情况进行相应的调整。这样当有多个request的时候,grant可以依次给每个request,即使之前高优先级的request再次有新的request,也会等前面的request都grant之后再轮到它。
以4个request为例来说明,如表1所示:表格中req<3:0>列表示实际的request,为1表示产生了request;RR Priority这一列为当前的优先级,为0表示优先级最高,为3表示优先级最低;RR Grant这一列表示根据当前Round Robin的优先级和request给出的许可;Fixed Grant表示如果是固定优先级,即按照3210,给出的grant值。
表1
第一个周期,初始状态,假设req<0>的优先级最高,req<1>其次,req<3>最低,当req<2>和req<0>同时为1的时候,根据优先级,req<0>优先级高于req<2>,grant = 0001。
第二个周期,因为req<2>在前一个周期并没有获得grant,那么它继续为1,而这个时候req<0>又来了一个新的request,这个时候就能够看出round robin和fixed priority的差别了。对于fixed priority, grant依然给0,即0001。但是round robin算法的要求是:因为上一个周期req<0>已经被grant了,那么它的优先级变为最低的3,相应的,req<1>的优先级变为最高,因为它本来就是第二高的优先级,那么当req<0>优先级变为最低了之后它自然递补到最高,那么这个时候产生的许可grant就不能给到req<0>,而是要给到req<2>。
同理,第三个周期,req<2>因为在前一个周期grant过,它的优先级变为3最低,req<3>的优先级变为最高。后面的周期大家可以自己顺着分析下来。
换句话说,因为被grant的那一路优先级在下一个周期变为最低,这样让其他路request都会依次被grant到,而不会出现其中某一路在其他路有request的情况下连续被grant的情况,所以round-robin在中文中也被翻译成“轮询调度”。
在一些可选的实施方式中,如图5所示:通信装置还包括飞行请求记录单元113;飞行请求记录单元113用于对已发出但未响应的请求进行记录。
在本发明实施例中,飞行请求记录单元113的一端与仲裁单元112连接,另一端与响应接收单元109连接。通过与仲裁单元112连接,可以准确获知已经发出的请求;通过与响应接收单元连接,可以直接获知已经返回响应的请求;从而根据获取到的已经发出的请求和已经返回响应的请求,判断出已发出但未响应的请求进行记录;其中判断方式可以是从已经发出的请求中筛掉已经返回响应的请求,以得到已发出但未响应的请求。
具体地,请求查询单元103可以从飞行请求记录单元中查询是否存在第一请求,即判断飞行请求记录单元中是否存在与待发送请求具有相同请求编号和不同从设备编号的飞行请求;如果存在则需要将该待发送请求搬运至请求存储单元,以此可以避免“相同请求编号的请求发送给不同的从设备,导致主设备无法根据请求编号区分来自不同从设备的响应信息,进而造成主设备处理数据的混乱”的问题。
在一些可选的实施方式中,如图6所示:通信装置还包括读响应分发单元114和写响应分发单元115;
读响应分发单元114的一端与响应接收单元109连接,另一端与总线接口100的读数据通道连接,读响应分发单元114用于接收响应接收单元109分发的读响应信息,并将其读响应信息通过读数据通道发送给对应主设备。
写响应分发单元115的一端与响应接收单元109连接,另一端与总线接口100的写响应通道连接,写响应分发单元115用于接收响应接收单元109分发的写响应信息,并将其写响应信息通过写响应通道发送给对应主设备。
本实施例中的通信装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
技术效果:
本发明要解决的技术问题是“主设备无法根据ID信息区分来自不同从设备的读响应或写响应,进而造成主设备处理数据的混乱”;之所以出现该技术问题,是因为从设备在向主设备返回响应信息时仅会携带请求编号,但不会携带从设备编号,就会导致如果同时返回多个具有请求编号的响应信息,主设备仅根据请求编号无法区分来自不同从设备的响应信息,进而造成主设备处理数据的混乱的问题。
为解决上述技术问题,本发明采取了以下技术手段:
1、本发明通过控制请求的发出,来间接解决“主设备无法根据请求编号区分来自不同从设备的响应信息”的问题,即本发明中请求查询单元103可以从飞行请求记录单元中查询是否存在第一请求,即判断飞行请求记录单元中是否存在与待发送请求具有相同请求编号和不同从设备编号的飞行请求;如果存在则将该待发送请求搬运至请求存储单元进行存储。通过上述技术手段,本发明能够确保不会出现以下情况,即“同时存在两个或两个以上具有相同请求编号、不同从设备编号的请求处于飞行状态(即已经发出但未被响应)”,从而避免相同请求编号的请求发送给不同的从设备,导致主设备无法根据请求编号区分来自不同从设备的响应信息,进而造成主设备处理数据的混乱的问题。
2、本发明中的请求转移单元在满足响应条件时将待发送请求转移至发射单元,通过满足响应条件中的“与待发送请求具有相同请求编号的飞行请求全部被响应”,能够保证在不存在与待发送请求具有相同请求编号的飞行请求的时候将待发送请求发出,不会出现“相同请求编号的请求发送给不同的从设备,导致主设备无法根据请求编号区分来自不同从设备的响应信息,进而造成主设备处理数据的混乱”的问题;通过满足响应条件中的“请求存储单元中排在待发送请求前面的且与待发送请求具有相同请求编号的请求全部被清空”,能够保证每一次从请求存储单元中发出的请求都不存在相同请求编号的飞行请求,进而避免了主设备处理数据混乱的情况,进而有效提高数据传输的带宽。
3、本发明对Address(地址)进行译码,适用Address判别出该请求发往哪个从设备(Slave)的对应编号。该编号用来确定当前请求是否发往相同的Slave;
4、记录在飞行的读请求,用以检查待发出的读请求是否是相同请求编号发往不同从设备的情况。如果是,则该请求立刻被挂起,并将后续读请求继续发出,以保证读通路的带宽不会降低。被挂起的读请求在之前相同请求编号的飞行请求都已响应结束后,再被发送至相应的从设备;
5、记录在飞行的写请求,用以检查待发出的写请求是否是相同请求编号发往不同从设备的情况。如果是,则该请求立刻被挂起,并将后续写请求继续发出,以保证写通路的带宽不会降低;被挂起的写请求在之前相同请求编号的飞行请求都已响应结束后,再被发送至相应的从设备。
6、不限制主设备(Master)不能发出相同请求编号的请求到不同从设备(Slave)的情况,这样会不限制Master的特性以及Master的相关软件的配置,最大限度的增加Master的通用性,并且可以提高Master可发出的并行任务量的个数,提高整个系统的性能;
7、当出现相同请求编号的请求发往不同从设备(Slave)时,仅阻塞当前这个ID的请求,将其挂起。但是后续的所有不同ID的请求,将被继续不断地发出,不会影响这些请求的性能。而对于相同ID的请求,当前置该ID的请求都收到响应后,被挂起的请求会被立刻发出,最大限度的保证相同ID发往不同Slave的请求的性能。总体会大幅度提高带宽。对于X算法(32 bit int MULT)来说,当系统配置的ID位宽为6比特时,实测本发明专利提高的系统带宽可达到21.85%;对于Y算法(32 bit float MULT)来说,当系统配置的ID位宽为6比特时,实测本发明专利提高的系统带宽可达到17.11%。
实施例2:
上述实施例1是基于读请求或者写请求实施的通信装置,本发明还提供一种可以同步进行读请求和写请求的通信装置,如图7所示:
通信装置中的译码处理单元101、数据存储单元102、请求查询单元103、请求搬运单元104、请求存储单元105、请求转移单元106主要用于对总线接口中写地址通道(aw_chnl)中的写请求进行发送顺序控制;上述单元的连接方式以及更进一步的功能描述与上述对应实施例相同,在此不再赘述。
通信装置中的译码处理单元201、数据存储单元202、请求查询单元203、请求搬运单元204、请求存储单元205、请求转移单元206主要用于对总线接口中读地址通道(ar_chnl)中的读请求进行发送顺序控制;上述单元的连接方式以及更进一步的功能描述与上述对应实施例相同,在此不再赘述。
仲裁单元112和仲裁单元212均可以对读请求和/或写请求进行轮询调度,从多个待发送请求中仲裁出目标待发送请求。
写飞行请求记录单元214分别与仲裁单元112、仲裁单元212以及响应接收单元109连接,写飞行请求记录单元214以此可以记录已经发出但未被响应的写请求。
读飞行请求记录单元213分别与仲裁单元112、仲裁单元212以及响应接收单元109连接,读飞行请求记录单元213以此可以记录已经发出但未被响应的读请求。
读响应分发单元114,一端与读数据通道(r_chnl)连接,一端与响应接收单元109连接,用于将响应接收单元109接收到的读响应信息通过读数据通道发送给对应从设备。
写响应分发单元115,一端与写响应通道(w_chnl)连接,一端与响应接收单元109连接,用于将响应接收单元109接收到的写响应信息通过写响应通道发送给对应从设备。
在一些实施例中,上述单元的连接方式以及更进一步的功能描述与上述对应实施例相同,在此不再赘述。
实施例3:
本发明还提供一种通信总线,可以包括实施例1或实施例2中的通信装置。
在一些优选的实施例中,上述通信装置的各个单元的更进一步的功能描述与上述对应实施例相同,在此不再赘述。
实施例4:
根据上述实施例1、2,本发明还提供了一种通信方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种通信方法,可用于上述的通信装置,图8是根据本发明实施例的通信方法的流程图,如图8所示,该流程包括如下步骤:
步骤S101,对待发送请求中的地址信息进行译码处理,得到与待发送请求对应的从设备编号;存储待发送请求,待发送请求包含请求编号。
具体地,对于上述步骤S101的更进一步描述与上述对应实施例1、2相同,在此不再赘述。
步骤S102,对数据存储单元输出的待发送请求进行查询,以判断是否存在第一请求;如果存在第一请求,则根据查询到第一请求向请求搬运单元发送请求搬运指令;如果不存在第一请求,则将数据存储单元输出的待发送请求发送至发射单元;第一请求表示与待发送请求具有相同请求编号和不同从设备编号的飞行请求,飞行请求表示已发出但未响应的请求。
具体地,对于上述步骤S102的更进一步描述与上述对应实施例1、2相同,在此不再赘述。
步骤S103,根据请求搬运指令将数据存储单元中的待发送请求搬运至请求存储单元;请求存储单元用于接收并存储待发送请求,以及将所述待发送请求发送给请求转移单元。
具体地,对于上述步骤S103的更进一步描述与上述对应实施例1、2相同,在此不再赘述。
步骤S104,根据满足响应条件将待发送请求转移至发射单元,响应条件为与待发送请求具有相同请求编号的飞行请求全部被响应,以及请求存储单元中排在待发送请求前面的且与待发送请求具有相同请求编号的请求全部被清空;将待发送请求发送给目标从设备。
具体地,对于上述步骤S104的更进一步描述与上述对应实施例1、2相同,在此不再赘述。
优选地, 通信方法还包括:
步骤S105,接收从设备发送的用于响应待发送请求的响应信息,并将响应信息返回给主设备。
具体地,对于上述步骤S105的更进一步描述与上述对应实施例1、2相同,在此不再赘述。
优选地, 通信方法还包括:
生成第一悬挂编号,第一悬挂编号表示待发送请求的悬挂编号,用于查询与待发送请求对应的数据;
生成第二悬挂编号,第二悬挂编号表示与待发送请求对应的数据的悬挂编号;
根据第一悬挂编号与第二悬挂编号确定与待发送请求相匹配的数据,并将数据发送给目标从设备。
具体地,对于上述步骤的更进一步描述与上述对应实施例1、2相同,在此不再赘述。
优选地, 通信方法还包括:
根据多个待发送请求的优先级,从多个待发送请求中仲裁出目标待发送请求。
具体地,对于上述步骤的更进一步描述与上述对应实施例1、2相同,在此不再赘述。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (10)
1.一种通信装置,其特征在于,包括:
译码处理单元,与总线接口连接;所述译码处理单元用于对待发送请求中的地址信息进行译码处理,得到与所述待发送请求对应的从设备编号;所述总线接口还连接用于发出所述待发送请求的主设备;
数据存储单元,与所述译码处理单元连接;所述数据存储单元用于存储所述待发送请求,所述待发送请求包含请求编号;
请求查询单元,与所述数据存储单元、请求搬运单元以及发射单元分别连接;所述请求查询单元用于对数据存储单元输出的待发送请求进行查询,以判断是否存在第一请求;如果存在第一请求,则根据查询到第一请求向所述请求搬运单元发送请求搬运指令;如果不存在第一请求,则将数据存储单元输出的待发送请求发送至发射单元;所述第一请求表示与所述待发送请求具有相同请求编号和不同从设备编号的飞行请求,所述飞行请求表示已发出但未响应的请求;
所述请求搬运单元,用于根据所述请求搬运指令将所述数据存储单元中的所述待发送请求搬运至请求存储单元;
所述请求存储单元与请求转移单元连接,用于接收并存储所述待发送请求,以及将所述待发送请求发送给请求转移单元;
请求转移单元,用于根据满足响应条件将所述待发送请求转移至发射单元,所述响应条件为与所述待发送请求具有相同请求编号的飞行请求全部被响应,以及所述请求存储单元中排在所述待发送请求前面的且与所述待发送请求具有相同请求编号的请求全部被清空;
所述发射单元,用于将所述待发送请求发送给目标从设备。
2.根据权利要求1所述的通信装置,其特征在于,所述通信装置还包括:
响应接收单元,用于接收所述从设备发送的用于响应所述待发送请求的响应信息,并将所述响应信息返回给所述主设备。
3.根据权利要求2所述的通信装置,其特征在于,所述通信装置还包括:
第一生成单元,设置于所述译码处理单元与所述数据存储单元之间,所述第一生成单元用于生成第一悬挂编号,所述第一悬挂编号表示所述待发送请求的悬挂编号,用于查询与所述待发送请求对应的数据;
第二生成单元,用于生成第二悬挂编号,所述第二悬挂编号表示与所述待发送请求对应的数据的悬挂编号;
所述发射单元还用于根据第一悬挂编号与所述第二悬挂编号确定与所述待发送请求相匹配的数据,并将所述数据发送给所述目标从设备。
4.根据权利要求2所述的通信装置,其特征在于,所述待发送请求为读请求;
所述译码处理单元与所述总线接口之间通过读地址通道连接;
所述响应接收单元与所述总线接口之间通过读数据通道连接。
5.根据权利要求3所述的通信装置,其特征在于,所述待发送请求为写请求;
所述译码处理单元与所述总线接口之间通过写地址通道连接;
所述第二生成单元与所述总线接口之间通过写数据通道连接;
所述响应接收单元与所述总线接口之间通过写响应通道连接。
6.根据权利要求1至5中任一项所述的通信装置,其特征在于,所述通信装置还包括:
仲裁单元,用于根据多个待发送请求的优先级,从所述多个待发送请求中仲裁出目标待发送请求,并将所述目标待发送请求发送给发射单元。
7.根据权利要求1至5中任一项所述的通信装置,其特征在于,所述通信装置还包括:
飞行请求记录单元,用于所述飞行请求进行记录。
8.一种通信总线,包括所述权利要求1至7中任一项所述的通信装置。
9.一种通信方法,应用于所述权利要求1至7中任一项所述的通信装置,其特征在于,所述通信方法包括:
对待发送请求中的地址信息进行译码处理,得到与所述待发送请求对应的从设备编号;存储所述待发送请求,所述待发送请求包含请求编号;
对数据存储单元输出的待发送请求进行查询,以判断是否存在第一请求;如果存在第一请求,则根据查询到第一请求向所述请求搬运单元发送请求搬运指令;如果不存在第一请求,则将数据存储单元输出的待发送请求发送至发射单元;所述第一请求表示与所述待发送请求具有相同请求编号和不同从设备编号的飞行请求,所述飞行请求表示已发出但未响应的请求;
根据所述请求搬运指令将数据存储单元中的所述待发送请求搬运至请求存储单元;所述请求存储单元用于接收并存储所述待发送请求,以及将所述待发送请求发送给请求转移单元;
根据满足响应条件将所述待发送请求转移至发射单元,所述响应条件为与所述待发送请求具有相同请求编号的飞行请求全部被响应,以及所述请求存储单元中排在所述待发送请求前面的且与所述待发送请求具有相同请求编号的请求全部被清空;
将所述待发送请求发送给目标从设备。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求9所述的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310700742.4A CN116488956B (zh) | 2023-06-14 | 2023-06-14 | 通信装置、通信方法、总线及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310700742.4A CN116488956B (zh) | 2023-06-14 | 2023-06-14 | 通信装置、通信方法、总线及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116488956A CN116488956A (zh) | 2023-07-25 |
CN116488956B true CN116488956B (zh) | 2023-09-29 |
Family
ID=87219851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310700742.4A Active CN116488956B (zh) | 2023-06-14 | 2023-06-14 | 通信装置、通信方法、总线及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116488956B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102301655A (zh) * | 2009-02-02 | 2011-12-28 | 松下电工株式会社 | 网络系统 |
CN112383458A (zh) * | 2020-10-28 | 2021-02-19 | 交控科技股份有限公司 | 一种响应式通信方法及系统 |
CN114265872A (zh) * | 2022-02-24 | 2022-04-01 | 苏州浪潮智能科技有限公司 | 一种用于总线的互联装置 |
WO2023284169A1 (zh) * | 2021-07-15 | 2023-01-19 | 苏州浪潮智能科技有限公司 | 从axi总线到opb总线的数据写入方法及读取方法 |
-
2023
- 2023-06-14 CN CN202310700742.4A patent/CN116488956B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102301655A (zh) * | 2009-02-02 | 2011-12-28 | 松下电工株式会社 | 网络系统 |
CN112383458A (zh) * | 2020-10-28 | 2021-02-19 | 交控科技股份有限公司 | 一种响应式通信方法及系统 |
WO2023284169A1 (zh) * | 2021-07-15 | 2023-01-19 | 苏州浪潮智能科技有限公司 | 从axi总线到opb总线的数据写入方法及读取方法 |
CN114265872A (zh) * | 2022-02-24 | 2022-04-01 | 苏州浪潮智能科技有限公司 | 一种用于总线的互联装置 |
Also Published As
Publication number | Publication date |
---|---|
CN116488956A (zh) | 2023-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0706137B1 (en) | Queued arbitration mechanism for data processing system | |
US7577772B2 (en) | Method and system for optimizing DMA channel selection | |
CA2458572C (en) | A method, article and apparatus for providing flexible bandwidth allocation via multiple instantiations of separate buses | |
US6345345B1 (en) | Data communications device and associated method for arbitrating access using dynamically programmable arbitration scheme and limits on data transfers | |
EP0993680A2 (en) | Method and apparatus in a packet routing switch for controlling access at different data rates to a shared memory | |
KR100347473B1 (ko) | 버스시스템 | |
US7054969B1 (en) | Apparatus for use in a computer system | |
CN111290983A (zh) | Usb传输设备及传输方法 | |
US6826644B1 (en) | Peripheral component interconnect arbiter implementation with dynamic priority scheme | |
CN116488956B (zh) | 通信装置、通信方法、总线及存储介质 | |
US6546448B1 (en) | Method and apparatus for arbitrating access to a PCI bus by a plurality of functions in a multi-function master | |
JP4104939B2 (ja) | マルチプロセッサシステム | |
CN113742267B (zh) | 一种用于rdma通信设备的dma通信系统及方法 | |
CN111026699B (zh) | 基于环形总线的多核网络通信方法、装置及系统 | |
KR100973419B1 (ko) | 버스 중재 방법 및 장치 | |
US9817774B2 (en) | Bridge and method for coupling a requesting interconnect and a serving interconnect in a computer system | |
US6138197A (en) | Apparatus and method for limit-based arbitration scheme | |
EP2588965B1 (en) | Method, apparatus and system for maintaining transaction coherecy in a multiple data bus platform | |
CN115269467B (zh) | 一种总线仲裁的方法、装置、存储介质及电子设备 | |
EP0923032B1 (en) | Method for transferring data in a multiprocessor computer system with crossbar interconnecting unit | |
GB2341771A (en) | Address decoding | |
CN115017093A (zh) | 一种片上外部总线通信的方法以及装置 | |
CN116225991A (zh) | 固态硬盘控制器、命令调度方法、固态硬盘及存储介质 | |
CN117931391A (zh) | 一种基于rmda的无损高效的数据处理方法及网络接口卡 | |
GB2341765A (en) | Bus idle usage |
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 |