CN111651396B - 一种优化的pcie完成包乱序管理电路实现方法 - Google Patents

一种优化的pcie完成包乱序管理电路实现方法 Download PDF

Info

Publication number
CN111651396B
CN111651396B CN202010338966.1A CN202010338966A CN111651396B CN 111651396 B CN111651396 B CN 111651396B CN 202010338966 A CN202010338966 A CN 202010338966A CN 111651396 B CN111651396 B CN 111651396B
Authority
CN
China
Prior art keywords
data
cache
interface
read request
implementation method
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
CN202010338966.1A
Other languages
English (en)
Other versions
CN111651396A (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.)
Yaoyun Technology Xi'an Co ltd
Original Assignee
Yaoyun Technology Xi'an Co ltd
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 Yaoyun Technology Xi'an Co ltd filed Critical Yaoyun Technology Xi'an Co ltd
Priority to CN202010338966.1A priority Critical patent/CN111651396B/zh
Publication of CN111651396A publication Critical patent/CN111651396A/zh
Application granted granted Critical
Publication of CN111651396B publication Critical patent/CN111651396B/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/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0871Allocation or management of cache space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • 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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

一种优化的PCIE完成包乱序管理电路实现方法,属于通信数据传输领域,包括系统接口缓存区、读请求发送模块、数据搬移及控制模块、PRD表及控制模块;其特征在于:将系统缓存按页为单位分割为若干空间;针对PCIE完成包乱序返回,而采用的读命令标签乱序发放,返回数据包先到先存,先存先取走到系统缓存的FIFO管理机制,从而降低数据的在接口缓存的停滞时间,尽量减少接口数据到系统缓存的气泡,从而提供数据搬运效率。同时本法所述实现方法可以使标签乱序回收,乱序发放,提高标签的周转利用效率。

Description

一种优化的PCIE完成包乱序管理电路实现方法
技术领域
本发明属于通信数据传输领域,尤其涉及一种优化的PCIE完成包乱序管理电路实现方法。
背景技术
随着信息技术的日益发达,对服务器及个人电脑的数据访问的带宽,延时性,高IOPS,大容量等要求越来越高。PCIE的接口协议,从PCIE第一代到目前正在制定中的第六代,接口的速度处于飞快的发展之中。PCIE 接口以其可扩展性,高效率日益成为存储设备的主流接口。接口速度提高之后, 需要内部控制逻辑也有与之匹配的发展。NVMe协议则是为了满足更高并行度,更高效率的数据传输而发展起来的主流命令层协议。在NVMe协议与PCIE 协议对接时,以及NVMe与总线对接时,对数据流流畅度的控制将是系统前端设计的重点。设备端PCIE 读请求发出时,每个读请求对应一个读标签,待完成的读请求的标签具有唯一性。PCIE 协议通常模式下支持32个标签,标签值以0-31标识,扩展模式下支持256个标签,标签值0-255标识。读请求发出后,从主机侧回来的完成包与读请求发出的顺序不一致,是乱序的。而放到系统缓存的数据通常又是要求以页为单位存放,页内的数据是顺序的。
通常的做法是通过标签对应等手段将乱序回来的数据按标签放入各自对应的缓存,按请求发出的顺序重新摆放好之后,按调整后的顺序发给总线,放入系统缓存。
上述办法解决了乱序的问题,但是,由于接收回来的乱序数据只能按顺序发给总线,对于后发出的请求而先收到完成包的数据一直被阻塞在接口缓存内,数据无法及时拖走,导致标签无法及时释放,读请求的发送断续;同时接口缓存两侧的数据流是断续的,有气泡存在,影响效率;而且每个标签都需要一个对应的接口缓存,如果支持256个标签,则需要256块缓存,需要的接口缓存空间大。
发明内容
本发明旨在解决上述问题,提供一种以PCIE为接口协议的存储的优化的PCIE完成包乱序管理电路实现方法。
本发明所述优化的PCIE完成包乱序管理电路实现方法,包括系统接口缓存区、读请求发送模块、数据搬移及控制模块、PRD表及控制模块;
将系统缓存按页为单位分割为若干空间;
具体的实现方法如下步骤:
1)系统设备侧收到写命令时,若写命令对应的数据长度大于一页数据大小时,将写命令切割成多个以页数据大小为长度单位的写命令请求;若写命令对应的数据长度小于一页数据大小时,按实际长度下发下发写命令请求;将数据长度切割后的写命令请求填入请求列表PRD中;同时系统填写缓存管理状态表;
2) 系统的接口缓存区对应设置一接口缓存状态表,先返回的数据包先储存,同时更新接口缓存状态表;每一数据包对应一数据有效状态位valid;该数据包的数据写入完成时置位valid;当数据被读出后清零有效状态位valid;数据包的完成状态按接收的顺序填写状态到接口缓存状态表中;
3)每一读请求标签对应一已发布命令信息项及一个用于表示该读请求标签对应的数据是否已经返回并处理完成的状态位P;当P位为0时,表示该标签为闲置状态,可以回收给读请求发送模块发送读请求时使用;
4)从PRD表中读出读请求,按读请求数据包最大长度切割成若干个PCIE读请求;在读请求发出前检测接口缓存区是否有对应长度的数据空间;若有,则发送读请求,并将该读请求返回数据的信息填入已发布命令信息表中;
5)当接收到一个完成数据包时,根据步骤2)所述将数据包顺序写入接口缓存功能区中,同时将信息填入接口缓存状态表,且置位对应有效状态位valid;
6)数据搬移及控制模块检测接口缓存状态表的当前表项对应的有效状态位valid,有效状态位valid为非清零状态根据步骤3)所述的已发布命令信息表找到该数据应该写入的系统缓存的地址,启动数据搬移及控制模块完成数据搬移;搬移完成则清零接口缓存状态表中对应的有效状态位valid;
7)判断数据全部搬移完毕后更新系统缓存管理状态表。
本发明所述优化的PCIE完成包乱序管理电路实现方法,所述判断数据全部搬移完毕的具体过程包括:根据已发布命令信息表中对应标签要求的数据长度,判断该标签对应的数据是否全部接受完,若对应全部数据已经搬完,则清零P位,表示对应的标签值释放;
若只是搬了部分数据,此时将系统缓存绝对地址更新为当前写入地址,将长度信息更新为剩余未完成长度;待剩余的数据完成包收到并完成搬移之后,再清零P位。
本发明所述优化的PCIE完成包乱序管理电路实现方法,所述PRD表中包括请求数据的长度及在系统缓存中的起始偏移地址。
本发明所述优化的PCIE完成包乱序管理电路实现方法,所述页数据大小包括4k或8k或16k或32k。
本发明所述优化的PCIE完成包乱序管理电路实现方法,所述读请求返回数据的信息包括将要写入的系统缓存绝对地址。
本发明所述优化的PCIE完成包乱序管理电路实现方法,针对PCIE完成包乱序返回,而采用的读命令标签乱序发放,返回数据包先到先存,先存先取走到系统缓存的FIFO管理机制,从而降低数据的在接口缓存的停滞时间,尽量减少接口数据到系统缓存的气泡,从而提供数据搬运效率。同时本法所述实现方法可以使标签乱序回收,乱序发放,提高标签的周转利用效率。
附图说明
图1为本发明所述优化的PCIE完成包乱序管理电路实现方法流程示意图;
图2为本发明所述优化的PCIE完成包乱序管理电路实现方法控制实现框图。
具体实施方式
下面通过附图及实施例对本发明所述优化的PCIE完成包乱序管理电路实现方法进行详细说明。
本发明所述优化的PCIE完成包乱序管理电路实现方法,如图2所示,包括系统接口缓存区、读请求发送模块、数据搬移及控制模块、PRD表及控制模块;
将系统缓存按页为单位分割为若干空间;
具体的实现方法如下步骤:
1)系统设备侧收到写命令时,若写命令对应的数据长度大于一页数据大小时,将写命令切割成多个以页数据大小为长度单位的写命令请求;若写命令对应的数据长度小于一页数据大小时,按实际长度下发写命令请求;将数据长度切割后的写命令请求填入请求列表PRD(physical region description)中;同时系统填写缓存管理状态表;每个PRD中包含了请求数据的长度以及在系统缓存中的起始偏移地址。同时,系统填写缓存管理状态表,表示该缓存中每个页区域的数据状态等信息,包括但不限于数据长度,读写进度等状态;
2) 系统的接口缓存区对应设置一个接口缓存状态表,先返回的数据包先储存,同时更新接口缓存状态表;每一数据包对应一个数据有效状态位valid;该数据包的数据写入完成时置位valid;当数据被读出后清零有效状态位valid;数据包的完成状态按接收的顺序填写状态到接口缓存状态表中;
3)每一读请求标签对应一个已发布命令信息项及一个用于表示该读请求标签对应的数据是否已经返回并处理完成的状态位P;当P位为0时,表示该标签为闲置状态,可以回收给读请求发送模块发送读请求时使用;
4)从PRD表中读出读请求,按读请求数据包最大长度切割成若干个PCIE读请求;在读请求发出前检测接口缓存区是否有对应长度的数据空间;若有,则发送读请求,并将该读请求返回数据将要写入的系统缓存绝对地址以及其他信息计算出来填入已发布命令信息表中;
5)当接收到一个完成数据包时,根据步骤2)所述将数据包顺序写入接口缓存功能区中,同时将信息填入接口缓存状态表,且置位对应有效状态位valid;
6)数据搬移及控制模块检测接口缓存状态表的当前表项对应的有效状态位valid,有效状态位valid为非清零状态根据步骤3)所述的已发布命令信息表找到该数据应该写入的系统缓存的地址,启动数据搬移及控制模块完成数据搬移;搬移完成则清零接口缓存状态表中对应的有效状态位valid;
然后,根据已发布命令信息表项中对应标签要求的数据长度,判断该标签对应的数据是否全部接受完,如果对应全部数据已经搬完,则清零P位,表示对应的标签值释放。如果只是搬了部分数据(一个读标签对应的数据,可能会被拆分成多个完成包返回),此时将系统缓存绝对地址更新为当前写入地址(之前填入的绝对地址加上已经搬运数据长度),将长度信息更新位及剩余未完成长度。 待剩余的数据完成包收到并完成搬移之后,再清零P位;
7)数据搬移完成后,更新系统缓存管理状态表, 缓存管理状态表用来统计并表示按页分割的页数据是否完成;通过以上步骤,该系统的各个环节不用互相等待,提高了数据传输效率。
如图1所示,在本实施例中以4个标签为例,读请求标签按乱序回收,乱序发送,数据先到先取走;虽然返回的完成包是乱序收到,但每收到一个完成包,系统就立即将数据搬移走,及时释放读标签,读请求可以更高效回收并发送;数据在接口缓存滞留的时间很短,搬移到总线上的数据也相对更连贯,少有气泡,数据带宽更高;下面以系统有4个标签为例,来描述具体读取过程如下:
a)假定系统总共有4个标签(tag)可用,分别为0,1,2,3,开始时,所有的标签(tag)都空闲,系统可以连续发出4个读请求,标签分别为0,1,2,3;
b)主机侧乱序返回读数据,返回的读数据包的标签顺序依次为2,3,1,0;依接收到的次序放入接口缓存FIFO(图2中121模块);每放入接口缓存FIFO(图2中121模块)一个完整的数据包,则置位接口缓存管理状态表中对应的状态位valid;
c)数据搬移及控制模块DMA(图2中123模块)检测到当前(状态表的表项从0开始)对应的状态位valid位,如果为0,表示数据还没接收到,继续等待,为1表示一个完整数据包已经接收到,则启动数据搬移及控制模块DMA(图2中123模块)搬移走接口缓存FIFO(图2中121模块)中最早接收到的数据包(标签为2的数据包)。搬移完成后则清零对应的状态位valid。并开始检测下一个(状态表的表项1)状态位valid,如果为1,则继续搬运(标签为3的数据包)…重复该步骤,依次完成标签为2,3,1,0,3,1,0,2的数据包的搬移;
d)根据步骤c),接收到的数据包不停的被搬移走,则相应就不断有对应的读标签(tag)释放出来,如图2所示,标签释放的顺序是2,3,1,0,3,1,0,2… 释放出的标签可以立即被使用。用来发送下一个读数据包。 所以发送出去的读请求标签顺序为0,1,2,3,2,3,1,0…;
e)系统重复步骤a)-- d),就可以实现数在各部分的连续传输。
本发明所述优化的PCIE完成包乱序管理电路实现方法在PCIE读请求的返回数据包乱序返回时,按先到先存的机制放入接口缓存,先存先取的机制,收到一个完整的数据包就立即送给总线取走,减少了数据在接口缓存的停留时间,减少数据时延,同时解决了数据包与数据包在总线上因为数据重新排序而造成的气泡问题,使数据在总线上的传输更流畅。接收到一个返回完成包,数据立即读走, 就可以释放一个标签,从而可以发出新的读请求,提高了读请求的发送效率。接口缓存采用FIFO机制,按照接收数据的顺序存放和读取,不用每个标签对应一个接口缓存,大大减少缓存容量。

Claims (5)

1.一种优化的PCIE完成包乱序管理电路实现方法,包括系统接口缓存区、读请求发送模块、数据搬移及控制模块、PRD表及控制模块;
其特征在于:将系统缓存按页为单位分割为若干空间;
具体的实现方法如下步骤:
1)系统设备侧收到写命令时,若写命令对应的数据长度大于一页数据大小时,将写命令切割成多个以页数据大小为长度单位的写命令请求;若写命令对应的数据长度小于一页数据大小时,按实际长度下发下发写命令请求;将数据长度切割后的写命令请求填入请求列表PRD中;同时系统填写缓存管理状态表;
2)系统的接口缓存区对应设置一接口缓存状态表,先返回的数据包先储存,同时更新接口缓存状态表;每一数据包对应一数据有效状态位valid;该数据包的数据写入完成时置位valid;当数据被读出后清零有效状态位valid;数据包的完成状态按接收的顺序填写状态到接口缓存状态表中;
3)每一读请求标签对应一已发布命令信息项及一个用于表示该读请求标签对应的数据是否已经返回并处理完成的状态位P;
4)从PRD表中读出读请求,按读请求数据包最大长度切割成若干个PCIE读请求;在读请求发出前检测接口缓存区是否有对应长度的数据空间;若有,则发送读请求,并将该读请求返回数据的信息填入已发布命令信息表中;
5)当接收到一个完成数据包时,根据步骤2)所述将数据包顺序写入接口缓存功能区中,同时将信息填入接口缓存状态表,且置位对应有效状态位valid;
6)数据搬移及控制模块检测接口缓存状态表的当前表项对应的有效状态位valid,有效状态位valid为非清零状态根据步骤3)所述的已发布命令信息表找到该数据应该写入的系统缓存的地址,启动数据搬移及控制模块完成数据搬移;搬移完成则清零接口缓存状态表中对应的有效状态位valid;
7)判断数据全部搬移完毕后更新系统缓存管理状态表。
2.根据权利要求1所述优化的PCIE完成包乱序管理电路实现方法,其特征在于:所述判断数据全部搬移完毕的具体过程包括:根据已发布命令信息表中对应标签要求的数据长度,判断该标签对应的数据是否全部接受完,若对应全部数据已经搬完,则清零P位,表示对应的标签值释放;
若只是搬了部分数据,此时将系统缓存绝对地址更新为当前写入地址,将长度信息更新为剩余未完成长度;待剩余的数据完成包收到并完成搬移之后,再清零P位。
3.根据权利要求2所述优化的PCIE完成包乱序管理电路实现方法,其特征在于:所述PRD表中包括请求数据的长度及在系统缓存中的起始偏移地址。
4.根据权利要求3所述优化的PCIE完成包乱序管理电路实现方法,其特征在于:所述页数据大小包括4k或8k或16k或32k。
5.根据权利要求4所述优化的PCIE完成包乱序管理电路实现方法,其特征在于:所述读请求返回数据的信息包括将要写入的系统缓存绝对地址。
CN202010338966.1A 2020-04-26 2020-04-26 一种优化的pcie完成包乱序管理电路实现方法 Active CN111651396B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010338966.1A CN111651396B (zh) 2020-04-26 2020-04-26 一种优化的pcie完成包乱序管理电路实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010338966.1A CN111651396B (zh) 2020-04-26 2020-04-26 一种优化的pcie完成包乱序管理电路实现方法

Publications (2)

Publication Number Publication Date
CN111651396A CN111651396A (zh) 2020-09-11
CN111651396B true CN111651396B (zh) 2021-08-10

Family

ID=72346660

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010338966.1A Active CN111651396B (zh) 2020-04-26 2020-04-26 一种优化的pcie完成包乱序管理电路实现方法

Country Status (1)

Country Link
CN (1) CN111651396B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112328520B (zh) * 2020-09-30 2022-02-11 郑州信大捷安信息技术股份有限公司 一种pcie设备、基于pcie设备的数据传输方法和系统
CN112328519B (zh) * 2020-09-30 2022-02-18 郑州信大捷安信息技术股份有限公司 一种pcie设备、基于sr-iov的数据包有序传输方法和系统
CN114553776B (zh) * 2022-02-28 2023-10-10 深圳市风云实业有限公司 一种信号乱序控制与速率自适应的传输装置及其传输方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102541778A (zh) * 2010-12-17 2012-07-04 西安奇维测控科技有限公司 一种超高速超大容量存储装置及其实现方法
CN102804151A (zh) * 2009-06-29 2012-11-28 惠普开发有限公司 访问作为缓存一致性域的部分的内存刀片的内存代理
CN109213691A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 用于缓存管理的方法和设备
CN109240944A (zh) * 2018-08-16 2019-01-18 南京天数智芯科技有限公司 一种基于可变长缓存行的数据读写方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9990298B2 (en) * 2014-05-12 2018-06-05 Western Digital Technologies, Inc System and method for caching solid state device read request results

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102804151A (zh) * 2009-06-29 2012-11-28 惠普开发有限公司 访问作为缓存一致性域的部分的内存刀片的内存代理
CN102541778A (zh) * 2010-12-17 2012-07-04 西安奇维测控科技有限公司 一种超高速超大容量存储装置及其实现方法
CN109213691A (zh) * 2017-06-30 2019-01-15 伊姆西Ip控股有限责任公司 用于缓存管理的方法和设备
CN109240944A (zh) * 2018-08-16 2019-01-18 南京天数智芯科技有限公司 一种基于可变长缓存行的数据读写方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"A Parallel and Pipelined Architecture for Accelerating Fingerprint Computation in High Throughput Data Storages";Dongyang Li等;《2015 IEEE 23rd Annual International Symposium on Field-Programmable Custom Computing Machines》;20150716;全文 *
"基于Tag的PCIe总线事务并行处理技术研究";李少博;《中国优秀硕士学位论文全文数据库 信息科技辑》;20190115;I137-258 *

Also Published As

Publication number Publication date
CN111651396A (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
CN111651396B (zh) 一种优化的pcie完成包乱序管理电路实现方法
US8352689B2 (en) Command tag checking in a multi-initiator media controller architecture
US9921955B1 (en) Flash write amplification reduction
CN100590609C (zh) 一种基于非连续页的动态内存管理方法
CN107766270B (zh) 用于PCIe设备的数据读取管理方法及装置
US9384147B1 (en) System and method for cache entry aging
KR100881597B1 (ko) 읽기 요청 처리 시스템 및 방법
US6850998B2 (en) Disk array system and a method for controlling the disk array system
US6917992B2 (en) Method and apparatus for efficient command queuing within a serial ATA environment
CN1510589A (zh) 共享存储器数据传送设备
US9672180B1 (en) Cache memory management system and method
CN102541468A (zh) 虚拟化环境下的脏数据回写系统
CN101303685A (zh) 可提升通用序列总线储存设备的读写数据速率的方法
CN105681222A (zh) 一种数据接收缓存方法、装置及通信系统
CN115344200A (zh) 一种基于NVMe接口的存储系统
CN112256624B (zh) 用于高速互连网络接口芯片的dma通信装置、芯片、设备及方法
CN101056316A (zh) 一种pci以太网媒体访问控制器传输数据的方法
US7409486B2 (en) Storage system, and storage control method
US10733118B2 (en) Computer system, communication device, and storage control method with DMA transfer of data
CN104991745A (zh) 一种存储系统数据写入方法和系统
CN111694777B (zh) 基于PCIe接口的DMA传输方法
CN102184150A (zh) 高功能环形缓冲缓存系统及其控制方法
US7430634B2 (en) Data transfer apparatus and data transfer method
CN101854603B (zh) 一种处理多媒体消息业务的方法及装置
CN117873392A (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