CN110781120A - 一种axi总线主机设备跨4kb传输的实现方法 - Google Patents
一种axi总线主机设备跨4kb传输的实现方法 Download PDFInfo
- Publication number
- CN110781120A CN110781120A CN201911008994.0A CN201911008994A CN110781120A CN 110781120 A CN110781120 A CN 110781120A CN 201911008994 A CN201911008994 A CN 201911008994A CN 110781120 A CN110781120 A CN 110781120A
- Authority
- CN
- China
- Prior art keywords
- read
- write
- command
- write operation
- length
- 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
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/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
本发明公开一种AXI总线主机设备跨4K传输的实现方法,本方法将数据传输量大于4KB的读写操作命令拆分成多条读写操作子命令发送给从机,多条读写操作子命令返回的响应合并成一个读写响应返回主机设备。本方法突破上位机配置过程中AXI协议不允许跨4K传输的限制,将传输大小提升至AXI的满带宽32K,进一步实现了AXI协议的高传输性能。并给本发明解决了4K传输过程中乱序传输的难点,解决方案同样适用于其他乱序传输,真正实现了对AXI协议高速性能的全支持。
Description
技术领域
本发明公开一种AXI总线主机设备跨4KB传输的实现方法,属于AXI总线技术领域。
背景技术
AXI总线是Xilinx与ARM密切合作,共同为基于FPGA的高性能系统和设计定义了AXI协议规范。AXI协议数据位宽最大支持1024bit,突发传输长度最大支持256,因此一次突发传输数据量最大支持32KB。而协议本身不支持跨4K边界的传输,针对AXI协议规定在一次传输中不可以跨4KB边界操作,现有的基于AXI总线的数据传输实现方法中,通过限制数据位宽或者传输长度,将传输数据量小于等于4KB,避免出现地址跨4KB边界的数据传输。因此,现有的方法将一次突发传输的最大数据传输量从32KB减少到4KB,大大降低了系统总线的传输带宽。因此,无法实现AXI总线的高性能、高带宽和低延迟的优势,同时增加了上位机软件的负责程度和执行时间,给系统带来了不必要的负担和性能损耗。
发明内容
本发明要解决的技术问题是提供一种AXI总线主机设备跨4KB传输的实现方法,能够满足地址跨4KB边界传输和乱序传输,提高AXI系统总线效率和高带宽。
为了解决所述技术问题,本发明采用的技术方案是:一种AXI总线主机设备跨4K传输的实现方法,包括以下步骤:S01)、当主机设备发送读写操作命令时,读取当前主机设备发送的读写信息,包括读写ID标识、读写首地址、读写长度、读写数据位宽,通过读写首地址、数据数据位宽判断4KB边界的数据长度Len,Len=(D-D0)/W,D为4KB边界地址,D0为读写首地址,W为读写数据位宽;S02)、比较步骤S01读取的读写长度与4KB边界的数据长度,如果读写长度小于或者等于4KB边界的数据长度,执行步骤S03,如果读写长度大于4KB边界的数据长度,执行步骤S04;S03)、将步骤S01读取的信息按照AXI接口协议发送读写地址和控制信号给从机;S04)、将步骤S01的读写操作命令拆分成N条读写操作子命令,N为大于1的正整数,前N-1条读写操作子命令的读写长度为4KB边界的数据长度,最后一条读写操作子命令的读写长度小于或者等于4KB边界的数据长度,第n条读写操作子命令的读写首地址为D0+(n-1)*Len,n为正整数,且1≤n≤N;S05)、将拆分后的读写操作子命令按照AXI接口协议发送读写地址和控制信号给从机,上述步骤的读写地址为读写首地址,控制信号包括读写长度和读写数据位宽,读写操作子命令的读写数据位宽与拆分前的读写操作命令的读写数据位宽相同。
进一步的,发送读写地址和控制信号至从机时,同时发送ID标识,同一条读写操作命令拆分的读写操作子命令使用相同的ID标识,存储每条命令的ID标识和每条命令的状态值,状态值表明该命令是否为拆分后的命令;当收到总线返回的读写响应时,将读写响应的ID标识与存储的命令ID标识一一对比,相等时读取相应命令的状态值,如果该命令的状态值标识该命令为未拆分的命令,将读写响应返回主机设备,如果该命令的状态值表明该命令为拆分后的子命令,将读写响应状态和ID标识保存下来,等待同一命令拆分得到的所有子命令的读写响应均返回后,合并成一个读写响应返回主机设备。
进一步的,同一命令拆分得到的所有子命令的的读写响应均为成功时,合并成一个成功的读写响应返回至主机设备,如果有一个或者一个以上的子命令的读写响应为失败,合并成一个失败的读写响应返回至主机设备。
进一步的,同一条读写操作命令拆分的读写操作子命令使用拆分前读写操作命令的ID标识。
进一步的,读写数据位宽W的单位为字节。
进一步的,本方法基于跨4KB边界操作的状态机实现,在没有读写操作时,状态机处于空闲状态,当主机设备发送读写操作命令时,跳转到INFO状态,执行步骤S01至步骤S05。
本发明的有益效果:本发明突破上位机配置过程中AXI协议不允许跨4K传输的限制,将传输大小提升至AXI的满带宽32K,进一步实现了AXI协议的高传输性能。并给本发明解决了4K传输过程中乱序传输的难点,解决方案同样适用于其他乱序传输,真正实现了对AXI协议高速性能的全支持。本发明所述跨4KB传输和乱序传输在AXI总线内部实现,不给上位机增加额外负担,简化软件操作的同时,又保证了传输的高速性能,降低了对配置指令的依赖,提升了主机设备命令的传输效率和响应效率,提高了AXI总线的利用率,降低整个系统的功耗。
附图说明
图1为实现跨4KB边界操作的状态机的示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步的说明。
实施例1
本实施例公开一种AXI总线主机设备跨4K传输的实现方法,包括以下步骤:S01)、当主机设备发送读写操作命令时,读取当前主机设备发送的读写信息,包括读写ID标识、读写首地址、读写长度、读写数据位宽,通过读写首地址、数据数据位宽判断4KB边界的数据长度Len,Len=(D-D0)/W,D为4KB边界地址,D0为读写首地址,W为读写数据位宽,单位为字节Byte;
S02)、比较步骤S01读取的读写长度与4KB边界的数据长度,如果读写长度小于或者等于4KB边界的数据长度,执行步骤S03,如果读写长度大于4KB边界的数据长度,执行步骤S04;
S03)、将步骤S01读取的信息按照AXI接口协议发送读写地址和控制信号给从机;
S04)、将步骤S01的读写操作命令拆分成N条读写操作子命令,N为大于1的正整数,前N-1条读写操作子命令的读写长度为4KB边界的数据长度,最后一条读写操作子命令的读写长度小于或者等于4KB边界的数据长度,第n条读写操作子命令的读写首地址为D0+(n-1)*Len,n为正整数,且1≤n≤N;
S05)、将拆分后的读写操作子命令按照AXI接口协议发送读写地址和控制信号给从机,上述步骤的读写地址为读写首地址,控制信号包括读写长度和读写数据位宽,读写操作子命令的读写数据位宽与拆分前的读写操作命令的读写数据位宽相同。
在乱序操作时,主机设备发送的读写命令会对应不同的ID标识值,从机通过总线返回与命令相对应ID值的写响应和读数据。在支持地址跨4KB边界操作时,主机设备发送的读写命令被拆分后,经过AXI总线,从机设备返回读写响应,将因为拆分多余的响应合并后,返回主机设备。
具体的,发送读写地址和控制信号至从机时,同时发送ID标识,同一条读写操作命令拆分的读写操作子命令使用相同的ID标识,本实施例中,同一条读写操作命令拆分的读写操作子命令使用拆分前读写操作命令的ID标识。在读写命令通道设置缓存存储每条命令的ID标识和每条命令的状态值,状态值表明该命令是否为拆分后的命令;当收到总线返回的读写响应时,将读写响应的ID标识与存储的命令ID标识一一对比,相等时读取相应命令的状态值,如果该命令的状态值标识该命令为未拆分的命令,将读写响应返回主机设备,如果该命令的状态值表明该命令为拆分后的子命令,将读写响应状态和ID标识保存下来,等待同一命令拆分得到的所有子命令的读写响应均返回后,合并成一个读写响应返回主机设备。
本实施例中,合并拆分的响应时,同一命令拆分得到的所有子命令的的读写响应均为成功时,合并成一个成功的读写响应返回至主机设备,如果有一个或者一个以上的子命令的读写响应为失败,合并成一个失败的读写响应返回至主机设备。
本方法基于跨4KB边界操作的状态机实现,如图1所示,在没有读写操作时,状态机处于空闲状态,当主机设备发送读写操作命令时,跳转到INFO状态,读取当前主机设备发送的读写信息,包含读写ID标识、读写首地址、读写长度、读写数据位宽,通过地址、数据位宽判断4KB边界的数据长度,4KB边界的数据传输长度等于4KB边界地址减首地址,除以数据位宽(以Byte为单位)。如果读写长度小于4KB边界的传输长度,状态机跳转到CMD状态;如果读写长度大于4KB边界的传输长度,状态机跳转到CROS状态。在CMD状态下,将INFO状态读取的信息,按照AXI接口协议,发送读写地址和控制信号。在CROS状态下,将INFO状态读取的首地址和4KB边界的传输长度,按照AXI接口协议,发送读写地址和控制信号。再将INFO状态读取的数据传输长度减4KB边界长度与4KB边界长度进行比较,如果大于,状态机维持在CROS状态,地址为4KB对齐地址,传输长度为4KB边界的传输长度,再继续上一步的判断,直到传输长度小于4KB边界长度,状态机跳转到CMD状态。
本实施例所述方法不仅提出了一种地址跨4K传输的实现方法,而且针对跨4K传输过程中的难点——乱序问题,提出了详细的解决方案。跨4K边界传输的实现及实现过程中对乱序传输的难点克服,真正实现了对AXI协议的完全支持,不仅继承了AXI协议高性能、高带宽、低延时的特性,又简化了主机设备读写操作的流程,让更多的开发者不需要了解AXI协议,同时不必拘泥于AXI协议限制,增加了开发的便利性,提高了系统工作效率。
以上描述的仅是本发明的基本原理和优选实施例,本领域技术人员根据本发明做出的改进和替换,属于本发明的保护范围。
Claims (6)
1.一种AXI总线主机设备跨4K传输的实现方法,其特征在于:包括以下步骤:S01)、当主机设备发送读写操作命令时,读取当前主机设备发送的读写信息,包括读写ID标识、读写首地址、读写长度、读写数据位宽,通过读写首地址、数据数据位宽判断4KB边界的数据长度Len,Len=(D-D0)/W,D为4KB边界地址,D0为读写首地址,W为读写数据位宽;S02)、比较步骤S01读取的读写长度与4KB边界的数据长度,如果读写长度小于或者等于4KB边界的数据长度,执行步骤S03,如果读写长度大于4KB边界的数据长度,执行步骤S04;S03)、将步骤S01读取的信息按照AXI接口协议发送读写地址和控制信号给从机;S04)、将步骤S01的读写操作命令拆分成N条读写操作子命令,N为大于1的正整数,前N-1条读写操作子命令的读写长度为4KB边界的数据长度,最后一条读写操作子命令的读写长度小于或者等于4KB边界的数据长度,第n条读写操作子命令的读写首地址为D0+(n-1)*Len,n为正整数,且1≤n≤N;S05)、将拆分后的读写操作子命令按照AXI接口协议发送读写地址和控制信号给从机,上述步骤的读写地址为读写首地址,控制信号包括读写长度和读写数据位宽,读写操作子命令的读写数据位宽与拆分前的读写操作命令的读写数据位宽相同。
2.根据权利要求1所述的AXI总线主机设备跨4KB传输的实现方法,其特征在于:发送读写地址和控制信号至从机时,同时发送ID标识,同一条读写操作命令拆分的读写操作子命令使用相同的ID标识,存储每条命令的ID标识和每条命令的状态值,状态值表明该命令是否为拆分后的命令;当收到总线返回的读写响应时,将读写响应的ID标识与存储的命令ID标识一一对比,相等时读取相应命令的状态值,如果该命令的状态值标识该命令为未拆分的命令,将读写响应返回主机设备,如果该命令的状态值表明该命令为拆分后的子命令,将读写响应状态和ID标识保存下来,等待同一命令拆分得到的所有子命令的读写响应均返回后,合并成一个读写响应返回主机设备。
3.根据权利要求2所述的AXI总线主机设备跨4KB传输的实现方法,其特征在于:同一命令拆分得到的所有子命令的的读写响应均为成功时,合并成一个成功的读写响应返回至主机设备,如果有一个或者一个以上的子命令的读写响应为失败,合并成一个失败的读写响应返回至主机设备。
4.根据权利要求2所述的AXI总线主机设备跨4KB传输的实现方法,其特征在于:同一条读写操作命令拆分的读写操作子命令使用拆分前读写操作命令的ID标识。
5.根据权利要求1所述的AXI总线主机设备跨4KB传输的实现方法,其特征在于:读写数据位宽W的单位为字节。
6.根据权利要求1所述的AXI总线主机设备跨4KB传输的实现方法,其特征在于:本方法基于跨4KB边界操作的状态机实现,在没有读写操作时,状态机处于空闲状态,当主机设备发送读写操作命令时,跳转到INFO状态,执行步骤S01至步骤S05。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911008994.0A CN110781120B (zh) | 2019-10-23 | 2019-10-23 | 一种axi总线主机设备跨4kb传输的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911008994.0A CN110781120B (zh) | 2019-10-23 | 2019-10-23 | 一种axi总线主机设备跨4kb传输的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110781120A true CN110781120A (zh) | 2020-02-11 |
CN110781120B CN110781120B (zh) | 2023-02-28 |
Family
ID=69386282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911008994.0A Active CN110781120B (zh) | 2019-10-23 | 2019-10-23 | 一种axi总线主机设备跨4kb传输的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110781120B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930651A (zh) * | 2020-08-14 | 2020-11-13 | 山东云海国创云计算装备产业创新中心有限公司 | 一种指令执行方法、装置、设备及可读存储介质 |
CN113050780A (zh) * | 2021-03-30 | 2021-06-29 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 系统级SoC芯片低功耗控制电路 |
CN113297018A (zh) * | 2021-05-14 | 2021-08-24 | 山东华芯半导体有限公司 | 一种axi从机乱序传输的验证方法 |
CN113821475A (zh) * | 2021-11-22 | 2021-12-21 | 湖北芯擎科技有限公司 | 数据传输方法、装置、电子设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083257A1 (en) * | 2000-12-21 | 2002-06-27 | Paras Shah | Buffer page roll implementation for PCI-X block read transactions |
CN101290604A (zh) * | 2007-04-20 | 2008-10-22 | 索尼株式会社 | 信息处理设备和方法以及程序 |
US20110283042A1 (en) * | 2010-05-11 | 2011-11-17 | Samsung Electronics Co., Ltd. | Transaction splitting apparatus and method |
CN102609378A (zh) * | 2012-01-18 | 2012-07-25 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
US20140086246A1 (en) * | 2012-09-25 | 2014-03-27 | Arteris SAS | Network on a chip socket protocol |
CN104021097A (zh) * | 2013-03-01 | 2014-09-03 | 中兴通讯股份有限公司 | 数据传输方法、装置及直接存储器存取 |
CN105095254A (zh) * | 2014-05-07 | 2015-11-25 | 深圳市中兴微电子技术有限公司 | 一种实现数据一致性的方法及装置 |
CN106657193A (zh) * | 2015-11-02 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 一种请求处理方法、装置、终端设备及服务器 |
CN106708679A (zh) * | 2015-11-17 | 2017-05-24 | 深圳市中兴微电子技术有限公司 | 一种片上系统总线行为检测方法和装置 |
CN106919522A (zh) * | 2015-12-28 | 2017-07-04 | 北京航天测控技术有限公司 | 一种基于PXIe接口的DMA控制器 |
CN109478168A (zh) * | 2017-06-23 | 2019-03-15 | 华为技术有限公司 | 内存访问技术及计算机系统 |
-
2019
- 2019-10-23 CN CN201911008994.0A patent/CN110781120B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020083257A1 (en) * | 2000-12-21 | 2002-06-27 | Paras Shah | Buffer page roll implementation for PCI-X block read transactions |
CN101290604A (zh) * | 2007-04-20 | 2008-10-22 | 索尼株式会社 | 信息处理设备和方法以及程序 |
US20110283042A1 (en) * | 2010-05-11 | 2011-11-17 | Samsung Electronics Co., Ltd. | Transaction splitting apparatus and method |
CN102609378A (zh) * | 2012-01-18 | 2012-07-25 | 中国科学院计算技术研究所 | 一种消息式内存访问装置及其访问方法 |
US20140086246A1 (en) * | 2012-09-25 | 2014-03-27 | Arteris SAS | Network on a chip socket protocol |
CN104021097A (zh) * | 2013-03-01 | 2014-09-03 | 中兴通讯股份有限公司 | 数据传输方法、装置及直接存储器存取 |
CN105095254A (zh) * | 2014-05-07 | 2015-11-25 | 深圳市中兴微电子技术有限公司 | 一种实现数据一致性的方法及装置 |
CN106657193A (zh) * | 2015-11-02 | 2017-05-10 | 腾讯科技(深圳)有限公司 | 一种请求处理方法、装置、终端设备及服务器 |
CN106708679A (zh) * | 2015-11-17 | 2017-05-24 | 深圳市中兴微电子技术有限公司 | 一种片上系统总线行为检测方法和装置 |
CN106919522A (zh) * | 2015-12-28 | 2017-07-04 | 北京航天测控技术有限公司 | 一种基于PXIe接口的DMA控制器 |
CN109478168A (zh) * | 2017-06-23 | 2019-03-15 | 华为技术有限公司 | 内存访问技术及计算机系统 |
Non-Patent Citations (2)
Title |
---|
RENDUCHINTHALA H H S S PRASAD ET AL.: ""Development of VIP for AMBA AXI-4.0 Protocol"", 《INDIAN JOURNAL OF SCIENCE AND TECHNOLOGY》 * |
张宇: ""固态硬盘中SATA接口控制器命令层的设计及验证"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111930651A (zh) * | 2020-08-14 | 2020-11-13 | 山东云海国创云计算装备产业创新中心有限公司 | 一种指令执行方法、装置、设备及可读存储介质 |
CN113050780A (zh) * | 2021-03-30 | 2021-06-29 | 西南电子技术研究所(中国电子科技集团公司第十研究所) | 系统级SoC芯片低功耗控制电路 |
CN113297018A (zh) * | 2021-05-14 | 2021-08-24 | 山东华芯半导体有限公司 | 一种axi从机乱序传输的验证方法 |
CN113821475A (zh) * | 2021-11-22 | 2021-12-21 | 湖北芯擎科技有限公司 | 数据传输方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110781120B (zh) | 2023-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110781120B (zh) | 一种axi总线主机设备跨4kb传输的实现方法 | |
US11681452B2 (en) | Memory access technology and computer system | |
EP2245545B1 (en) | Providing indirect data addressing for a control block at a channel subsystem of an i/o processing system | |
US20220414043A1 (en) | Avalon-to-axi4 bus conversion method | |
US20220391087A1 (en) | Solid-state storage drive and solid-state storage drive control method | |
CN115587058B (zh) | 一种数据处理系统、方法、设备及介质 | |
US9116881B2 (en) | Routing switch apparatus, network switch system, and routing switching method | |
CN117591450B (zh) | 一种数据处理系统、方法、设备及介质 | |
CN115269455B (zh) | 基于fpga的磁盘数据读写控制方法、装置和存储终端 | |
CN104038550A (zh) | 数据通信方法及其装置、存储系统 | |
CN110765046A (zh) | 一种动态可重构高速串行总线的dma传输装置与方法 | |
CN112732176B (zh) | 基于fpga的ssd访问方法及装置、存储系统及存储介质 | |
CN113099490B (zh) | 一种基于5g通信的数据包传输方法和系统 | |
CN114579505A (zh) | 芯片以及核间通信方法 | |
CN112363670B (zh) | 一种sata ncq命令调度方法 | |
CN117149680B (zh) | 用于贴片机子模块日志上传的主控板及上传方法 | |
CN115129629B (zh) | 具有双闪存芯片的带宽扩展方法、计算机装置和存储介质 | |
CN111831226B (zh) | 一种自主输出nvme协议命令加速处理方法 | |
CN113507610B (zh) | 一种主从系统多路并发解码jpg图像的方法及装置 | |
CN117193632A (zh) | 一种操作命令处理方法、装置、设备和存储介质 | |
CN117743235A (zh) | I2c设备的访问方法及装置 | |
CN116737644A (zh) | 控制系统的串行通信方法和控制系统、电子设备和介质 | |
CN116126231A (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 |