CN110134629B - 一种基于FPGA的NVMe SSD PCIe数据包解析方法 - Google Patents

一种基于FPGA的NVMe SSD PCIe数据包解析方法 Download PDF

Info

Publication number
CN110134629B
CN110134629B CN201910420009.0A CN201910420009A CN110134629B CN 110134629 B CN110134629 B CN 110134629B CN 201910420009 A CN201910420009 A CN 201910420009A CN 110134629 B CN110134629 B CN 110134629B
Authority
CN
China
Prior art keywords
tlp
type
information
address
fpga
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
Application number
CN201910420009.0A
Other languages
English (en)
Other versions
CN110134629A (zh
Inventor
张京超
刘旺
孟凡廓
朱凯晖
乔立岩
彭喜元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Harbin Institute of Technology
Original Assignee
Harbin Institute of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Harbin Institute of Technology filed Critical Harbin Institute of Technology
Priority to CN201910420009.0A priority Critical patent/CN110134629B/zh
Publication of CN110134629A publication Critical patent/CN110134629A/zh
Application granted granted Critical
Publication of CN110134629B publication Critical patent/CN110134629B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • G06F13/4221Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus being an input/output bus, e.g. ISA bus, EISA bus, PCI bus, SCSI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

一种基于FPGA的NVMe SSD PCIe数据包解析方法,它属于存储技术领域。本发明解决了传统的PCIe数据包解析过程复杂,且需要占用的逻辑资源过多的问题。本发明借助接收的NVMe数据包的TLP参数的特征以及地址的变化规律,简化了数据包解析过程,在不解析TLP地址的情况下能够准确判断出TLP包的类型及作用;而且由FPGA内部的BlockRam构成的FIFO缓存模块只需记录TLP参数及编号字段,不用记录TLP的地址,与传统的数据解析方法相比,本发明提出的简化方法在保证数据解析模块功能完整的同时,可以节省57%的逻辑资源。本发明可以应用于存储技术领域。

Description

一种基于FPGA的NVMe SSD PCIe数据包解析方法
技术领域
本发明属于存储技术领域,具体涉及一种基于FPGA的NVMe SSD PCIe数据包解析方法。
背景技术
高速数据存储设备在雷达测试等领域应用广泛。为了提高存储设备的读写速度,减小设备的体积和功耗,适应小型化、紧凑化的发展趋势,可以利用存储领域新兴的NVMe(Non-Volatile Memory express,非易失性内存主机控制器接口规范)SSD(固态硬盘)来构建便携式高速存储设备,这种SSD的读写速度可高达2GB/s以上。由Zynq(ARM+FPGA)和NVMeSSD实现的存储设备的性能受到ARM核主频和线程的限制,而由FPGA和NVMe SSD实现的存储设备借助FPGA的并行特性,能够更好地发挥NVMe SSD的读写速度。
FPGA控制NVMe SSD的核心技术在于控制软件的设计和实现,包括数据接收及解析模块、数据发送模块、控制流程模块等。由于NVMe SSD借助PCIe(peripheral componentinterconnect express,高速串行计算机扩展总线)总线进行数据传输,因此数据解析模块需要解析从PCIe硬核的AXI-Stream接口返回的PCIe数据包。数据解析模块的作用在于解析PCIe数据包的信息,为后续模块提供具体的操作指令。传统的PCIe数据包解析过程比较复杂,且解析后的信息需要缓存在FIFO中,导致占用的逻辑资源过多,增加了NVMe控制模块的开发难度。
发明内容
本发明的目的是为解决传统的PCIe数据包解析过程复杂,且需要占用的逻辑资源过多的问题,而提出了一种基于FPGA的NVMe SSD PCIe数据包解析方法。
本发明为解决上述技术问题采取的技术方案是:一种基于FPGA的NVMe SSD PCIe数据包解析方法,所述基于FPGA的NVMe SSD PCIe数据包解析方法中需要解析的TLP包括读内存TLP和写内存TLP;且对于每个TLP均需要解析出其对应的格式信息、类型信息和长度信息;
其中:格式信息和类型信息用于确定对应的TLP的类型,长度信息用于确定对应的TLP的作用;
每个TLP的TLP参数均为一个16位2进制数,TLP参数的高8位为对应TLP的格式信息和类型信息,TLP参数的低8位为对应TLP的长度信息的低8位。
进一步地,所述TLP参数包括5种类型;类型1的TLP参数表示为0x0010,类型2的TLP参数表示为0x0010或0x0004,类型3的TLP参数表示为0x0040,类型4的TLP参数表示为0x4020,类型5的TLP参数表示为0x4004;
进一步地,所述类型2的TLP参数表示替换为0xad04/0xad10,0xad04/0xad10用于与类型1的TLP参数进行区分;
更进一步地,所述基于FPGA的NVMe SSD PCIe数据包解析方法,其具体包括以下步骤:
步骤一、FPGA接收到新的TLP后,将接收到的新TLP的编号(Tag)信息缓存,并跳转至步骤二;
步骤二、判断当前TLP的格式和类型信息是否为0x00,若是,则跳转至步骤三,否则,跳转至步骤五;
步骤三、判断当前TLP的RxUser[2]是否为1,若是,则跳转至步骤四,否则,跳转至步骤五;
其中:RxUser[2]代表接收总线用户自定义信号(共22位)的第2位;
步骤四、生成当前TLP的TLP参数为0xad04或0xad10,并跳转至步骤八;
步骤五、根据当前TLP的格式信息、类型信息和长度信息生成TLP参数,TLP参数为Fmt+Type+Length[7:0],跳转至步骤六;
步骤六、判断当前TLP的TLP参数的类型是否为类型4或类型5,若是,跳转至步骤七,否则,跳转至步骤八;
步骤七、缓存当前TLP中的数据载荷,并跳转至步骤十;
步骤八、将当前TLP的TLP参数缓存在先进先出存储器(FIFO)中,跳转至步骤九;
步骤九、FPGA获取先进先出存储器中缓存的类型1,2或3的TLP参数,读取FPGA获取的TLP参数对应的数据,并向NVMe SSD发送完成报文,跳转至步骤十;
步骤十、结束。
本发明的有益效果是:本发明提出了一种基于FPGA的NVMe SSD PCIe数据包解析方法,本发明借助接收的NVMe数据包的TLP参数的特征以及地址的变化规律,简化了数据包解析过程,在不解析TLP地址的情况下能够准确判断出TLP包的类型及作用;而且由FPGA内部的Block Ram构成的FIFO缓存模块只需记录TLP参数及编号字段,不用记录TLP的地址,与传统的数据解析方法相比,本发明提出的简化方法在保证数据解析模块功能完整的同时,可以节省57%的逻辑资源。
附图说明
图1是TLP包头结构的示意图;
其中:0DW代表第0个双字(double word,32位2进制数),1DW代表第1个双字,2DW代表第2个双字,R代表保留(reserved),没有使用,0Byte代表第0个Byte(8位二进制数),1Byte代表第1个Byte,2Byte代表第2个Byte,3Byte代表第3个Byte,0DW、1DW、2DW、0Byte、1Byte、2Byte和3Byte均是用来方便表示数据位的方式;
图2是本发明的流程图。
具体实施方式
具体实施方式一:本实施方式所述的一种基于FPGA的NVMe SSD PCIe数据包解析方法,所述基于FPGA的NVMe SSD PCIe数据包解析方法中需要解析的TLP(事务层数据包)包括读内存(Memory Read)TLP和写内存(Memory Write)TLP;且对于每个TLP均需要解析出其对应的格式(Format)信息、类型(Type)信息和长度(Length)信息;
其中:格式信息和类型信息用于确定对应的TLP的类型,长度信息用于确定对应的TLP的作用;
每个TLP的TLP参数均为一个16位2进制数,TLP参数的高8位为对应TLP的格式信息和类型信息,TLP参数的低8位为对应TLP的长度信息的低8位。
每个TLP的长度信息是10位二进制数,表述为Length[9:0],本发明中长度信息的高2位始终为0,因此,只记录和分析长度信息的低8位,即Length[7:0]。Length[7:0]是length信息的一部分。
NVMe(Non-Volatile Memory express,非易失性内存主机控制器接口规范)SSD(固态硬盘)借助PCIe(peripheral component interconnect express,高速串行计算机扩展总线)总线进行数据传输。PCIe链路的数据包结构分为物理层、数据链路层和事务层。Xilinx Virtex-7系列FPGA集成的PCIe硬核提供现成的PCIe物理层和数据链路层解析功能,并通过AXI-Stream接口输出事务层数据包(TLP),因此只需解析TLP即可实现PCIe数据包的解析。
FPGA控制NVMe SSD过程中需要解析的TLP分为两种:读内存(MemRd)和写内存(MemWr)TLP。FPGA接收到MemWr TLP后,解析TLP包头中的地址信息,将TLP的数据载荷写入对应地址的寄存器中;FPGA接收MemRd TLP后,解析TLP包头中的地址信息和Tag字段,读取FPGA中对应地址的寄存器内容,并返回相同Tag字段的完成报文。这两种TLP通过包头中的Fmt+Type区分,其包头结构如图1所示:
TLP包头中参数的具体定义及作用如表1所示:
表1 TLP包头中的参数及作用
参数名 作用
Fmt+Type TLP的类型(读/写)
Length TLP申请读写的数据长度
Requester ID SSD在PCIe拓扑结构中的位置,本发明中该字段为固定值0x0100
Tag FPGA返回的完成报文需要与接收的MemRd TLP的Tag对应
Last DW BE TLP起始有效位,本发明中该字段为固定值0xf
1st DW BE TLP终止有效位,本发明中该字段为固定值0xf
Address TLP申请读写的寄存器地址
数据包解析模块的作用在于解析TLP包头的信息,为后续执行流程提供TLP的具体操作类型及操作地址以及Tag信息。在NVMe控制流程中,需要通过解析TLP的Fmt+Type信息来确定TLP的类型,解析TLP的Length+Address信息来确定TLP读写请求对应的寄存器地址,结合寄存器中存储的内容判断该TLP的作用。解析后的Fmt+Type+Length+Address信息以及TLP的Tag信息首先缓存在Block Ram构成的FIFO中,再由控制流程状态机逐个读出并进行相应的处理,以保证每一个接收到的读写请求都能按照顺序执行。
抓取FPGA控制NVMe SSD过程中的TLP接收情况,对照NVMe协议,统计出在NVMe SSD执行命令的过程中FPGA接收的TLP种类。这些TLP按照功能分为5类,分别对应不同的作用,如表2所示:
表2不同类型TLP对应的参数及作用
Figure BDA0002065711980000041
Figure BDA0002065711980000051
为了提高开发效率,节省Block Ram资源,本发明提出了简化的解析方法,只需要解析TLP的Fmt+Type+Length信息即可确定该TLP的类型及作用。
具体实施方式二:本实施方式与具体实施方式一不同的是:所述TLP参数包括5种类型;类型1的TLP参数表示为0x0010,类型2的TLP参数表示为0x0010或0x0004,类型3的TLP参数表示为0x0040,类型4的TLP参数表示为0x4020,类型5的TLP参数表示为0x4004。
本实施方式中每种类型的TLP参数均是利用格式、类型和长度的低8位信息相结合产生的。
具体实施方式三:本实施方式与具体实施方式二不同的是:所述类型2的TLP参数表示替换为0xad04/0xad10,0xad04/0xad10用于与类型1的TLP参数进行区分。
本发明定义“TLP参数”如下:
(1)参数为16位2进制数;
(2)参数的高8位为TLP的Fmt+Type,参数的低8位为TLP的Length[7:0];
(3)特殊定义类型2的TLP参数为0xad04/0xad10。
本发明对类型2的TLP参数进行了特殊定义,其原因如下:TLP类型1、3、4和5分别对应一种TLP参数,而类型2对应两种Fmt+Type+Length参数,其中一种参数0x0010与类型1的TLP参数相同。
为了简化解析过程,本发明在不解析地址信息的前提下,提出了以下区分TLP类型1和2的方法。Xilinx PCIe硬核在接收到TLP时,AXI-Stream接收总线的RxUser信号会产生变换:当接收的TLP的地址信息在PCIe BAR0地址区间范围内时,RxUser[2]=1,否则RxUser[2]=0。本发明利用这种特性,定义“命令提交队列”的地址在PCIe BAR0地址区间范围外,“地址列表”的地址在BAR0地址区间范围内,即可在Fmt+Type+Length参数为0x0010时通过判断RxUser[2]是否为0来区分接收的TLP的作用。具体地说,当接收到的TLP的Fmt+Type+Length为0x0010时,若RxUser[2]=0,则该TLP的作用是读取命令提交队列;若RxUser[2]=1,则该TLP的作用是读取地址列表。
本发明将类型2的TLP参数定义为0xad04/0xad10,以区分类型1的TLP参数。最终定义的TLP类型与参数对照表如表3所示:
表3 TLP类型及参数对照表
类型 1 2 3 4 5
参数 0x0010 0xad04/0xad10 0x0040 0x4020 0x4004
具体实施方式四:结合图2说明本实施方式。本实施方式与具体实施方式三不同的是:所述基于FPGA的NVMe SSD PCIe数据包解析方法,其具体包括以下步骤:
步骤一、FPGA接收到新的TLP后,将接收到的新TLP的编号信息缓存,并跳转至步骤二;
步骤二、判断当前TLP的格式和类型信息是否为0x00,若是,则跳转至步骤三,否则,跳转至步骤五;
步骤三、判断当前TLP的RxUser[2]是否为1,若是,则跳转至步骤四,否则,跳转至步骤五;
其中:RxUser[2]代表接收总线用户自定义信号的第2位;
步骤四、生成当前TLP的TLP参数为0xad04或0xad10,并跳转至步骤八;
步骤五、根据当前TLP的格式信息、类型信息和长度信息生成TLP参数,跳转至步骤六;
步骤六、判断当前TLP的TLP参数的类型是否为类型4或类型5,若是,跳转至步骤七,否则,跳转至步骤八;
步骤七、缓存当前TLP中的数据载荷,并跳转至步骤十;
步骤八、将当前TLP的TLP参数缓存在先进先出存储器中,跳转至步骤九;
步骤九、FPGA获取先进先出存储器中缓存的类型1,2或3的TLP参数,读取FPGA获取的TLP参数对应的数据,并向NVMe SSD发送完成报文,跳转至步骤十;
步骤十、结束。
利用RxUser[2]信号区分接收到的TLP请求读取的内容,并结合TLP参数,省略地址解析过程,简化NVMe-PCIe数据包解析模块设计的方法。
具体实施方式五:本实施方式与具体实施方式四不同的是:所述RxUser[2]为1时,代表当前TLP的地址信息在PCIe BAR0(PCIe基地址寄存器)地址区间范围内,否则,当前TLP的地址信息不在PCIe BAR0地址区间范围内。
具体实施方式六:本实施方式与具体实施方式五不同的是:所述当前TLP的地址信息通过当前TLP的长度信息和前一个TLP的地址信息计算得到,具体为:
Address(n+1)=4×Length(n+1)+Address(n)
其中:Address(n+1)代表当前TLP的地址信息,Length(n+1)代表当前TLP的长度信息,Address(n)代表前一个TLP的地址信息。
表2中的5类TLP的地址信息的范围是固定的,每一类TLP都是由NVMe SSD严格按照地址从小到大的顺序产生的。这些TLP的起始地址信息由FPGA本地定义,每个TLP的地址信息可以由当前TLP的Length乘以4加上前一个TLP的地址信息得到,即Address(n+1)=4×Length(n+1)+Address(n)。这些地址信息不用缓存在FIFO中,因此由FPGA内部由Block Ram构成的FIFO缓存模块只需记录TLP参数(16位)及Tag字段(8位),不用记录TLP的地址(32位)。本发明提出的简化方法(每个TLP缓存24位数据)与解析并记录地址信息的方法(每个TLP缓存56位数据)相比节省57%的Block Ram资源。
综上所述,本发明提出的简化的解析模块通过解析TLP包头的Fmt+Type+Length得出TLP参数,该参数与TLP的操作类型及操作地址一一对应,能够实现解析模块全部的功能,且省略了地址信息的解析及缓存,简化了开发过程并节省了Block Ram资源。
本发明的上述算例仅为详细地说明本发明的计算模型和计算流程,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。

Claims (3)

1.一种基于FPGA的NVMe SSD PCIe数据包解析方法,其特征在于,所述基于FPGA的NVMeSSD PCIe数据包解析方法中需要解析的TLP包括读内存TLP和写内存TLP;且对于每个TLP均需要解析出其对应的格式信息、类型信息和长度信息;
其中:格式信息和类型信息用于确定对应的TLP的类型,长度信息用于确定对应的TLP的作用;
每个TLP的TLP参数均为一个16位2进制数,TLP参数的高8位为对应TLP的格式信息和类型信息,TLP参数的低8位为对应TLP的长度信息的低8位;
所述TLP参数包括5种类型;类型1的TLP参数表示为0x0010,类型2的TLP参数表示为0x0010或0x0004,类型3的TLP参数表示为0x0040,类型4的TLP参数表示为0x4020,类型5的TLP参数表示为0x4004;
所述类型2的TLP参数表示替换为0xad04/0xad10,0xad04/0xad10用于与类型1的TLP参数进行区分;
所述基于FPGA的NVMe SSD PCIe数据包解析方法,其具体包括以下步骤:
步骤一、FPGA接收到新的TLP后,将接收到的新TLP的编号信息缓存,并跳转至步骤二;
步骤二、判断当前TLP的格式和类型信息是否为0x00,若是,则跳转至步骤三,否则,跳转至步骤五;
步骤三、判断当前TLP的RxUser[2]是否为1,若是,则跳转至步骤四,否则,跳转至步骤五;
其中:RxUser[2]代表接收总线用户自定义信号的第2位;
步骤四、生成当前TLP的TLP参数为0xad04或0xad10,并跳转至步骤八;
步骤五、根据当前TLP的格式信息、类型信息和长度信息生成TLP参数,跳转至步骤六;
步骤六、判断当前TLP的TLP参数的类型是否为类型4或类型5,若是,跳转至步骤七,否则,跳转至步骤八;
步骤七、缓存当前TLP中的数据载荷,并跳转至步骤十;
步骤八、将当前TLP的TLP参数缓存在先进先出存储器中,跳转至步骤九;
步骤九、FPGA获取先进先出存储器中缓存的类型1,2或3的TLP参数,读取FPGA获取的TLP参数对应的数据,并向NVMe SSD发送完成报文,跳转至步骤十;
步骤十、结束。
2.根据权利要求1所述的一种基于FPGA的NVMe SSD PCIe数据包解析方法,其特征在于,所述RxUser[2]为1时,代表当前TLP的地址信息在PCIe BAR0地址区间范围内,否则,当前TLP的地址信息不在PCIe BAR0地址区间范围内。
3.根据权利要求2所述的一种基于FPGA的NVMe SSD PCIe数据包解析方法,其特征在于,所述当前TLP的地址信息通过当前TLP的长度信息和前一个TLP的地址信息计算得到,具体为:
Address(n+1)=4×Length(n+1)+Address(n)
其中:Address(n+1)代表当前TLP的地址信息,Length(n+1)代表当前TLP的长度信息,Address(n)代表前一个TLP的地址信息。
CN201910420009.0A 2019-05-20 2019-05-20 一种基于FPGA的NVMe SSD PCIe数据包解析方法 Active CN110134629B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910420009.0A CN110134629B (zh) 2019-05-20 2019-05-20 一种基于FPGA的NVMe SSD PCIe数据包解析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910420009.0A CN110134629B (zh) 2019-05-20 2019-05-20 一种基于FPGA的NVMe SSD PCIe数据包解析方法

Publications (2)

Publication Number Publication Date
CN110134629A CN110134629A (zh) 2019-08-16
CN110134629B true CN110134629B (zh) 2021-12-10

Family

ID=67571469

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910420009.0A Active CN110134629B (zh) 2019-05-20 2019-05-20 一种基于FPGA的NVMe SSD PCIe数据包解析方法

Country Status (1)

Country Link
CN (1) CN110134629B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112527705B (zh) * 2020-11-05 2023-02-28 山东云海国创云计算装备产业创新中心有限公司 一种PCIe DMA数据通路的验证方法、装置及设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645058A (zh) * 2009-09-04 2010-02-10 成都市华为赛门铁克科技有限公司 命令处理方法、命令发送方法、装置及系统
CN103106166A (zh) * 2012-12-22 2013-05-15 中国船舶重工集团公司第七0九研究所 一种协议无关、可支持目标读写操作的pcie ip核用户逻辑接口设计方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5565141B2 (ja) * 2010-06-28 2014-08-06 富士通株式会社 制御装置、切替装置、光伝送装置、及び制御方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101645058A (zh) * 2009-09-04 2010-02-10 成都市华为赛门铁克科技有限公司 命令处理方法、命令发送方法、装置及系统
CN103106166A (zh) * 2012-12-22 2013-05-15 中国船舶重工集团公司第七0九研究所 一种协议无关、可支持目标读写操作的pcie ip核用户逻辑接口设计方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于FPGA的高速高密度存储系统设计与实现;杨斌;《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》;20160315;I137-312 *

Also Published As

Publication number Publication date
CN110134629A (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
CN110109626B (zh) 一种基于FPGA的NVMe SSD命令处理方法
US7934025B2 (en) Content terminated DMA
CN108768981B (zh) 一种实现Powerlink工业实时以太网通讯的IP核
CN106951388A (zh) 一种基于PCIe的DMA数据传输方法及系统
CN110297797B (zh) 异构协议转换装置和方法
WO2021169474A1 (zh) 一种Avalon总线转Axi4总线的方法
US20070079015A1 (en) Methods and arrangements to interface a data storage device
CN105207794A (zh) 统计计数设备及其实现方法、具有统计计数设备的系统
CN110134629B (zh) 一种基于FPGA的NVMe SSD PCIe数据包解析方法
CN113961494A (zh) 一种pcie总线与axi总线的桥接系统
CN110941582B (zh) 一种bmc芯片的usb总线结构及其通信方法
CN114297124B (zh) 一种基于fpga的srio高速总线的通讯系统
CN116166581A (zh) 用于pcie总线的队列式dma控制器电路及数据传输方法
CN102420749A (zh) 一种网卡发包功能的实现装置和方法
CN113867796B (zh) 利用多状态机提高读性能的协议转换桥及实现方法
CN114422617B (zh) 一种报文处理方法、系统及计算机可读存储介质
CN112579478B (zh) 一种基于srio的fpga接收引擎设计
CN102571535B (zh) 一种数据延迟装置、方法及通信系统
Boyang Research and Implementation of XDMA High Speed Data Transmission IP Core Based on PCI Express and FPGA
TWI727581B (zh) 資料傳輸系統
CN111124959B (zh) 一种NVMe协议管理命令处理的硬件卸载方法
CN114721983A (zh) 一种ddr4加速读写装置
CN114610231A (zh) 大位宽数据总线分段存储的控制方法、系统、设备及介质
CN112147918B (zh) 基于arm+fpga+dsp架构的异步数据交互方法及系统
CN108681516A (zh) 提升mipi协议层传输速度的方法、快速传输的mipi接口和计算机可读存储介质

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