CN114090494B - 数据传输方法、装置、设备和存储介质 - Google Patents
数据传输方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN114090494B CN114090494B CN202111435570.XA CN202111435570A CN114090494B CN 114090494 B CN114090494 B CN 114090494B CN 202111435570 A CN202111435570 A CN 202111435570A CN 114090494 B CN114090494 B CN 114090494B
- Authority
- CN
- China
- Prior art keywords
- layer
- controlling
- physical coding
- instruction
- medium layer
- 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
- 230000005540 biological transmission Effects 0.000 title claims abstract description 50
- 238000000034 method Methods 0.000 title claims abstract description 43
- 239000000872 buffer Substances 0.000 claims abstract description 75
- 230000007246 mechanism Effects 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 description 11
- 230000001360 synchronised effect Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000009825 accumulation Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000011084 recovery Methods 0.000 description 6
- 238000012549 training Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 241000331006 Euchaeta media Species 0.000 description 1
- 235000008694 Humulus lupulus Nutrition 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003631 expected effect Effects 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/24—Resetting means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
-
- 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/4022—Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0026—PCI 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)
- Communication Control (AREA)
Abstract
本申请提供一种数据传输方法、装置、设备和存储介质,该方法包括:在媒介层重新确定数据通道的数量后,控制媒介层发送清空指令到物理编码子层;控制所述物理编码子层解析所述清空指令,根据解析结果控制所述物理编码子层清空弹性缓存;在所述弹性缓存完成清空后,控制所述物理编码子层向所述媒介层传输数据流;控制所述媒介层根据接收到的所述数据流进入下一传输状态。本申请在重新确定通道数量的状态时,发送清空命令,使Elastic Buffer被清空,如此,多通道得以同步传输数据,从而避免了因数据通道数量改变发生的lane‑to‑lane de‑skew失败现象。
Description
技术领域
本申请涉及通信技术领域,具体而言,涉及一种数据传输方法、装置、设备和存储介质。
背景技术
PCIe(Peripheral Component Interconnect Express),是一种高速串行计算机扩展总线标准。PCI Express总线链路支持任何两个端点之间的全双工通信,同时跨多个端点的并发访问没有固有的限制。物理PCI Express链路可能包含1个到32个通道,更精确地包括1,2,4,8,12,16或32个通道。
PCIe的数据接收方向为:对端设备发送数据到PHY(Physical LayerTransceivers,物理接口收发器),PHY再发送给物理编码子层PCS的Elastic Buffer(弹性缓存)进行时钟域的转换;Elastic Buffer再通过PIPE(Physical Interface for PCIExpress,PCIe物理层接口)接口将数据发送给MAC(Media Access Control,以太网媒体接入控制器,即媒介层),由MAC来进行lane-to-lane的de-skew(通道对齐),每条通道均是如上述的结构。
在上述数据接收过程中,当多通道数量变化时,可能出现如下问题:ElasticBuffer本质上是一个异步FIFO(First Input First Output,先进先出存储器),主要用于跨时钟域的同步和补偿时钟误差。由于在链路传输过程中,时钟误差是不稳定的,则有可能存在Elastic Buffer的写时钟快于读时钟的情况,那么就可能造成Elastic Buffer中数据的累积。
如果多条通道同时工作,每条通道各自的Elastic Buffer读写指针跳变起点一致,每条通道在一段时间内累积的数据是趋于相同的,不会超出了MAC的de-skew能力;然而,如果一开始只有M个通道工作,经过一段时间后,由于读写时钟误差Elastic Buffer读写指针距离可能会慢慢变大(大于初始设定值而小于溢出门限),这样就会在缓存中累积数据;然后又增加了一些通道,变成了N个通道(N>M)同时工作,对于这些新增的通道而言,Elastic Buffer读写指针距离为初始设定值,即还没有因为时钟频偏造成数据积累;
综上所述,对于新增通道和原有工作通道,数据以规定范围内的skew进入了Elastic Buffer。但是由于每条通道的Elastic Buffer的读写指针距离不一致,导致通道间skew增大,超出了MAC的de-skew能力,造成MAC端lane-to-lane de-skew失败等情况。
发明内容
本申请实施例的目的在于提供一种数据传输方法、装置、设备和存储介质,在重新确定通道数量的状态时,发送清空命令,使Elastic Buffer被清空,如此,多通道得以同步传输数据,从而避免了因数据通道数量改变发生的lane-to-lane de-skew失败现象。
本申请实施例第一方面提供了一种数据传输方法,包括:在媒介层重新确定数据通道的数量后,控制媒介层发送清空指令到物理编码子层;控制所述物理编码子层解析所述清空指令,根据解析结果控制所述物理编码子层清空弹性缓存;在所述弹性缓存完成清空后,控制所述物理编码子层向所述媒介层传输数据流;控制所述媒介层根据接收到的所述数据流进入下一传输状态。
于一实施例中,所述清空指令为对所述弹性缓存的复位指令;所述控制所述物理编码子层解析所述清空指令,根据解析结果控制所述物理编码子层清空弹性缓存,包括:控制所述物理编码子层解析所述清空指令,根据解析结果触发所述弹性缓存的复位机制。
于一实施例中,所述清空指令包括:预定命令。
于一实施例中,所述控制所述物理编码子层解析所述清空指令,根据解析结果触发所述弹性缓存的复位机制,包括:控制所述物理编码子层解析所述清空指令,当解析出所述预定命令,并且所述预定命令是发送给预定地址时,触发所述弹性缓存的复位机制。
于一实施例中,还包括:在所述弹性缓存进入复位机制时,控制所述物理编码子层停止向所述媒介层传输数据流。
于一实施例中,所述媒介层通过消息总线发送所述清空指令到所述物理编码子层。
于一实施例中,所述在媒介层重新确定数据通道的数量后,控制媒介层发送清空指令到物理编码子层,包括:在所述媒介层重新确定数据通道的数量时,经预设延时后,控制所述媒介层发送所述清空指令到所述物理编码子层。
于一实施例中,通过延时寄存器,在所述媒介层在重新确定数据通道的数量时,控制所述媒介层经所述预设延时后发送所述清空指令到所述物理编码子层。
本申请实施例第二方面提供了一种数据传输装置,包括:指令发送模块,用于在媒介层重新确定数据通道的数量后,控制媒介层发送清空指令到物理编码子层;缓存清空模块,用于控制所述物理编码子层解析所述清空指令,根据解析结果控制所述物理编码子层清空弹性缓存;数据传输模块,用于在所述弹性缓存完成清空后,控制所述物理编码子层向所述媒介层传输数据流;跳转模块,用于控制所述媒介层根据接收到的所述数据流进入下一传输状态。
于一实施例中,所述清空指令为对所述弹性缓存的复位指令;所述缓存清空模块用于:控制所述物理编码子层解析所述清空指令,根据解析结果触发所述弹性缓存的复位机制。
于一实施例中,所述清空指令包括:预定命令。
于一实施例中,所述控制所述物理编码子层解析所述清空指令,根据解析结果触发所述弹性缓存的复位机制,包括:控制所述物理编码子层解析所述清空指令,当解析出所述预定命令,并且所述预定命令是发送给预定地址时,触发所述弹性缓存的复位机制。
于一实施例中,所述媒介层通过消息总线发送所述清空指令到所述物理编码子层。
于一实施例中,所述指令发送模块用于:在所述媒介层重新确定数据通道的数量时,经预设延时后,控制所述媒介层发送所述清空指令到所述物理编码子层。
于一实施例中,通过延时寄存器,在所述媒介层在重新确定数据通道的数量时,控制所述媒介层经所述预设延时后发送所述清空指令到所述物理编码子层。
本申请实施例第三方面提供了一种电子设备,包括:存储器,用以存储计算机程序;处理器,用以执行所述计算机程序,以实现本申请实施例第一方面及其任一实施例的方法。
本申请实施例第四方面提供了一种非暂态电子设备可读存储介质,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行本申请实施例第一方面及其任一实施例的方法。
本申请提供的数据传输方法、装置、设备和存储介质,在媒介层重新确定数据通道的数量后,通过控制媒介层发送清空指令到物理编码子层;控制所述物理编码子层清空弹性缓存;并在所述弹性缓存完成清空后,控制所述物理编码子层向所述媒介层传输数据流;如此,当控制所述媒介层根据接收到的所述数据流进入下一传输状态时,所有的数据通道都是同步的,从而避免了因数据通道数量改变发生的lane-to-lane de-skew失败现象,并且未增加物理接口,操作简单,通用性强。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请一实施例的电子设备的示意图;
图2A为本申请一实施例的PCIe设备建链场景示意图;
图2B为本申请一实施例的PCIe设备的数据传输方向示意图;
图2C为本申请一实施例的PCIe设备的数据传输方向示意图;
图3为本申请一实施例的数据传输方法的流程示意图;
图4为本申请一实施例的数据传输方法的流程示意图;
图5为本申请一实施例的数据传输装置的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,本实施例提供一种电子设备1,包括:至少一个处理器11和存储器12,图1中以一个处理器为例。处理器11和存储器12通过总线10连接。存储器12存储有可被处理器11执行的指令,指令被处理器11执行,以使电子设备1可执行下述的实施例中方法的全部或部分流程,以在重新确定通道数量的状态时,发送清空命令,使Elastic Buffer被清空,使得多通道得以同步传输数据,从而避免了因数据通道数量改变发生的lane-to-lane de-skew失败现象。
于一实施例中,电子设备1可以是总线设备、手机、平板电脑、笔记本电脑、台式计算机或者多个计算机组成的大型运算系统。
为了清楚的描述本实施例的方案,现将涉及的名词释义如下:
PCIe:Peripheral Component Interconnect Express,是一种高速串行计算机扩展总线标准。PCI Express总线链路支持任何两个端点之间的全双工通信,同时跨多个端点的并发访问没有固有的限制。物理PCI Express链路可能包含1个到32个通道,更精确地包括1,2,4,8,12,16或32个通道。
Lane-to-Lane De-skew:PCIe链路完成字符锁定后,还需要进行通道对齐。因为有的数据通道的信号可能先到达,有的可能后到达。PCIe Spec规定PCIe链路应有能力对一定范围的Lane-to-Lane Skew进行移除,使得各个Lane上的信号是同步的。
Elastic Buffer(弹性缓存):其本质上是一种FIFO存储器(First Input FirstOutput,指先进先出存储器),主要用于解决跨时钟域问题。当然,PCIe的弹性缓存还用于补偿时钟误差(Compensate for the clock differences)。由于PCIe采用的嵌入式源同步时钟,接收端存在两个时钟域:一个是通过CDR从数据流中解析出来的时钟,用该时钟对数据进行采样。另一个是本地时钟域,用于其他的逻辑的。借助弹性缓存(FIFO),可以实现数据在这两个时钟域的转换。
PIPE:PHY Interface for the PCI Express,PCIe物理层接口,即定义了物理层中的媒介层(Media Access Layer,MAC)和物理编码子层(Physical Coding Sub-layer,PCS)之间的统一接口。
Message Bus:该接口仅使用少量信号线,即可实现非延迟性的PIPE接口操作。
请参看图2A,其为本申请一实施例的一种PCIe设备建链场景示意图,初始化建链时,PCIe链路会从Detect状态一直训练到目标速率的L0状态,然后开始正常的工作。
图2A中示出了PCIe设备中MAC里面的状态机的几种状态跳转,其中初始态是detect,正常建链状态为L0,各个状态基本释义如下:
Detect状态:系统进行复位操作(Cold、Hot or Warm Reset)后,会自动进入Detect状态。在这个状态中,PCIe设备会去检测自己Link(链路)的另一端是否存在其他PCIe设备。换句话说,就是检测有没有其他的PCIe设备与其相连接。
Polling状态:在该状态中,PCIe设备会依次发送TS1OS和TS2OS以实现以下目标:
1、位锁定(Bit Lock)。
2、字符锁定(Symbol Lock)。
3、信号极性翻转(Polarity Inversion),如果需要的话。
4、确定各个设备支持的速率(Data Rates)。
Configuration状态:在该状态中,PCIe设备会依次发送TS1OS和TS2OS以实现以下目标:
1、确定链路宽度(Link Width)。
2、分配通道(Lane)号。
3、通道位置翻转(Lane Reversal),如果需要的话。
4、通道对齐(Lane-to-Lane De-skew)。
L0状态:这是链路(Link)的正常状态(Normal and Full-Active State),所有的TLP、DLLP和Ordered Sets都可以被正常的收发。该状态下,速率可以是2.5GT/s或者是5GT/s等。
Recovery状态:这个状态用于Re-Trainning(重复训练),因此Re-Trainning可能会改变原有的速率,所以位锁定(Bit Lock)和符号锁定(Symbol Lock)操作都会被重新进行,但是花费的时间要比第一次少很多。
在实际场景中,如果PCIe设备的通道数量需要改变,链路会从L0状态跳转到Recovery状态,再跳转到Configuration状态,并在这一状态确定目标的通道数量。再由Recovery状态进入L0状态,则通道数量变化完成。
如图2B所示,为PCIe设备的数据传输方向简要示意图:对端设备20发送数据到PCIe设备的PHY(物理接口收发器),PHY再发送给PCS的Elastic Buffer进行时钟域的转换。Elastic Buffer再通过PIPE接口将数据发送给媒介层MAC(Media Access Control,即以太网媒体接入控制器),由MAC来进行lane-to-lane de-skew(通道对齐),每条数据通道均是这样的传输结构。
实际工作过程中,往往会遇到在多通道数量变化的情况,当多通道数量变化时,可能出现如下问题:
前述提到,Elastic Buffer本质上是一个异步FIFO,主要用于跨时钟域的同步和补偿时钟误差。由于在链路传输过程中,时钟误差是不稳定的,则有可能存在ElasticBuffer的写时钟快于读时钟的情况,那么就可能造成Elastic Buffer中数据的累积。
如果多条通道同时工作,每条通道各自的Elastic Buffer读写指针跳变起点一致,每条通道在一段时间内累积的数据是趋于相同的,不会超出了MAC的de-skew能力。但是如果一开始只有M个通道工作,经过一段时间后,由于读写时钟误差Elastic Buffer读写指针距离可能会慢慢变大(大于初始设定值而小于溢出门限),这样就会在缓存中累积数据。然后又增加了一些通道,比如变成了N个通道(N>M)同时工作,对于这些新增的通道而言,Elastic Buffer读写指针距离为初始设定值,即还没有因为时钟频偏造成数据积累。
也就是说,对于新增通道和原有工作通道,数据以规定范围内的skew(偏斜)进入了弹性缓存Elastic Buffer。但是由于每条通道的弹性缓存Elastic Buffer的读写指针距离不一致,导致通道间skew增大,超出了MAC的de-skew能力,容易造成MAC端lane-to-lanede-skew失败的情况。
如图2A中的PCIe设备建链示意图所示,在Configuration状态重新确定通道数量时,由于lane-to-lane de-skew失败,PCIe链路无法正常跳转到L0,而是最终跳转到Recovery状态。Recovery状态同样会出现lane-to-lane de-skew失败,进而跳转到Detect状态重新开始建链。重新建链意味着Elastic Buffer里面的数据将会被全部读空,并且所有的通道将同步开始建链。可以避免因skew累计造成的lane-to-lane de-skew的问题。
但是上述通过重新建链的方式来避免因skew累计造成的lane-to-lane de-skew失败的方式,存在如下缺陷:
缺陷(1)耗时长
建链对于硬件逻辑来讲,是一个很漫长的过程,特别是在目标传输速率较高的情况下。例如,一条链路想要training到Gen4 speed,要进行多达30次的子状态跳转,且像Recovery.Speed/Recovery.Equlization这些状态耗时都非常的长,不利于产品的正常使用。
缺陷(2)增加了软硬件设计的复杂度
由于发生了lane-to-lane de-skew失败,硬件将这个错误需要上报给软件进行处理。而此时软件并不知道是什么原因造成的lane-to-lane de-skew失败,由此引入更多的问题使得软硬件设计复杂化。
缺陷(3)软硬件重复操作
在硬件系统初始化建链后,软件系统会进行一系列的链路配置及测试工作。重新建链,意味着硬件需要重复操作。另外软件在初始化建链后、以及运行过程中搜集的数据全部作废,软件也要做很多的重复操作,由此浪费了软硬件资源。
如图2C所示,针对前述技术存在的问题,本申请实施例基于已有的PIPE接口,自定义一组地址和命令。在重新确定通道数量的状态时,通过message bus将自定义命令发送到自定义的地址,使Elastic Buffer被清空。接下来,多通道得以同步传输数据,从而避免了发生lane-to-lane de-skew失败。下面结合附图详细描述本申请实施例的技术内容。
请参看图3,其为本申请一实施例的数据传输方法,该方法可由图1所示的电子设备1来执行,并可以应用于对上述图2A至图2C中所示的PCIe设备的数据传输场景中,以避免因数据通道数量改变发生的lane-to-lane de-skew失败现象,解决前述技术存在的问题。该方法包括如下步骤:
步骤301:在媒介层重新确定数据通道的数量后,控制媒介层发送清空指令到物理编码子层。
在本步骤中,基于图2A所示的状态变换,当改变通道数量时,PCIe设备的媒介层(MAC)进行多通道数量协商,链路跳转到Configuration状态。在媒介层MAC重新确定数据通道的数量后,可以控制媒介层MAC发送清空指令到物理编码子层PCS,此处清空指令包含但不限于:预定地址和预定命令。清空指令是预先约定好的指令内容,比如预定地址可以是ff,预定命令可以是01。即媒介层MAC发送预定命令01至物理编码子层PCS的预定地址ff中。
于一实施例中,媒介层MAC通过消息总线(Message Bus)发送清空指令到物理编码子层PCS。PIPE接口中有一组Meassge bus,可以通过地址和命令来控制相应的操作。Meassge bus结构如下表1所示,
表1.Meassge bus结构
可以按照Message bus已有的地址命令结构及其传输方式,通过自定义预定地址及预定命令,来实现MAC和Elastic Buffer之间的交互,进而实现清空指令的传输,如此不需要增加额外的物理接口,减少硬件开销。
当然,也可以不通过message bus来实现MAC和PCS之间的通信,而是再自定义一组Bus完成二者之间的交互,提升配置清空指令的灵活性。
如图2C所示,在PCIe设备的媒介层(MAC)进行多通道数量协商,改变通道数量时,链路跳转到Configuration状态,由MAC通过M2P Bus(MAC to PHY Bus,即媒介层到物理编码子层的传输总线)自动发送自定义的预定地址及预定命令给PCS。
步骤302:控制物理编码子层解析清空指令,根据解析结果控制物理编码子层清空弹性缓存。
在本步骤中,如图2C所示,PCS收到了Message Bus的数据,并进行解析,基于解析结果,并触发Elastic Buffer的清空机制。
步骤303:在弹性缓存完成清空后,控制物理编码子层向媒介层传输数据流。
在本步骤中,弹性缓存完成清空后,多个数据通道实现同步,新增通道和原有工作通道的数据以规定范围内的skew进入了清空后的Elastic Buffer,每条通道的ElasticBuffer的读写指针距离一致,此时控制物理编码子层通过P2M Bus(PHY to MAC Bus,即物理编码子层到媒介层的传输总线)向媒介层传输数据流,就是同步传输。
步骤304:控制媒介层根据接收到的数据流进入下一传输状态。
在本步骤中,媒介层MAC接收到的多通道数据是同步的,因此通道间skew在MAC的de-skew能力内,可以直接进入状态机的下一传输状态,进而避免了MAC端因数据通道数量改变发生的lane-to-lane de-skew失败现象。比如MAC重新收到PCS发送的数据流,进而从Configuration状态跳转至下一状态,即使重新改变数据通道数量,也无需重新建链,简化了操作,提高了效率。
上述数据传输方法,在媒介层重新确定数据通道的数量后,通过控制媒介层发送清空指令到物理编码子层。控制物理编码子层清空弹性缓存。并在弹性缓存完成清空后,控制物理编码子层向媒介层传输数据流。如此,当控制媒介层根据接收到的数据流进入下一传输状态时,所有的数据通道都是同步的,从而避免了因数据通道数量改变发生的lane-to-lane de-skew失败现象,并且未增加物理接口,操作简单,通用性强。
请参看图4,其为本申请一实施例的数据传输方法,该方法可由图1所示的电子设备1来执行,并可以应用于对上述图2A至图2C中所示的PCIe设备的数据传输场景中,以避免因数据通道数量改变发生的lane-to-lane de-skew失败现象,解决前述技术存在的问题。该方法包括如下步骤:
步骤401:在媒介层重新确定数据通道的数量时,经预设延时后,控制媒介层发送清空指令到物理编码子层。
在本步骤中,在步骤301的基础上,还可以提供延时设置,即在PCIe设备进行多通道数量协商,链路跳转到Configuration状态,媒介层重新确定数据通道的数量时,可以由软件配置经预设延时后,再控制媒介层MAC发送清空指令到物理编码子层PCS。
于一实施例中,预设延时的作用域可以为:媒介层重新确定数据通道数量后,到媒介层向物理编码子层发出清空指令。实际电路在确定数据通道的时候,由于通道数量的忽然变化,可能存在数据传输不稳定(误码率较高)等不利因素。如果此时直接去发送清空指令,可能达不到预期的效果。通过预设延时这个功能,可以给实际电路一个可调整的空间,已更加准确的达到预期效果。
于一实施例中,预设延时可以是软件通过配置媒介层的寄存器来实现的,由于链路训练的过程中,软件是无法干预的,因此配置预设延时一般可以在链路训练开始之前。基于实际使用需求,预设延时的取值范围可以是配置为0us~500us。比如配置媒介层的寄存器default值为0,即没有延时;若该寄存器default值配置为1,则延时100us(即time unit=100us)。
在前期的仿真验证中,如果希望电路尽快完成清空弹性缓存的动作,可以不配置预设延时。而实际电路的链路训练时间,远多于在仿真验证中的时间,所以预设延时对链路训练整体性能的影响可以忽略不计。
比如可由软件配置延时寄存器延时参数,MAC根据延时参数,在进入Configuration状态后,经该预设延时后再触发M2P Bus,来发送自定义预定地址及预定命令到物理编码子层PCS。步骤402:控制物理编码子层解析清空指令,根据解析结果触发弹性缓存的复位机制,并在弹性缓存进入复位机制时,控制物理编码子层停止向媒介层传输数据流。
在本步骤中,清空指令为对弹性缓存的复位指令。即通过复位机制将弹性缓存清空。如此直接利用弹性缓存原有的性能,就不需要额外增加软硬件设计。
进一步地,控制物理编码子层解析清空指令,当解析出约定的预定命令,并且预定命令是发送给预定地址时,触发弹性缓存的复位机制。沿用前述例子,PCS收到了MessageBus的数据进行解析,只有解析到发送到预定地址ff的预定命令01时,才会触发ElasticBuffer的复位机制,以此来确保复位指令是合法的,避免误操作。
进一步地,在弹性缓存进入复位机制时,控制PCS停止向MAC传送数据流,避免在弹性缓存未完成复位造成的数据通道不同步问题,待Elastic Buffer复位完成后,再控制PCS重新向MAC传送数据流。
步骤403:在弹性缓存完成清空后,控制物理编码子层向媒介层传输数据流。详细参见上述实施例中对步骤303的描述。
步骤404:控制媒介层根据接收到的数据流进入下一传输状态。详细参见上述实施例中对步骤304的描述。
上述数据传输方法,可以基于PCIe设备已有的PIPE接口,自定义一组地址和命令。在重新确定通道数量的状态时,通过Message bus将自定义命令发送到自定义的地址,使Elastic Buffer被清空。接下来,多通道得以同步传输数据,从而避免了发生lane-to-lanede-skew失败。如此,无需增加额外物理接口,操作简单,通用性强,适用于一系列的高速接口协议。其次,执行过程中,只消耗了一小部分时间,主要用于解析自定义命令,和清空Elastic Buffer,并不需要额外的状态机跳转。从而节省了大量的时间,保持了链路的稳定性,并且软件无需增加复杂度或进行重复操作,极大的降低了软硬件的开发难度。
请参看图5,其为本申请一实施例的数据传输装置500,该装置可应用于图1所示的电子设备1,并可以应用于对上述图2A至图2C中所示的PCIe设备的数据传输场景中,以避免因数据通道数量改变发生的lane-to-lane de-skew失败现象,解决前述技术存在的问题。该装置包括:指令发送模块501、缓存清空模块502、数据传输模块503和跳转模块504,各个模块的原理关系如下:
指令发送模块501,用于在媒介层重新确定数据通道的数量后,控制媒介层发送清空指令到物理编码子层。
缓存清空模块502,用于控制物理编码子层解析清空指令,根据解析结果控制物理编码子层清空弹性缓存。
数据传输模块503,用于在弹性缓存完成清空后,控制物理编码子层向媒介层传输数据流。
跳转模块504,用于控制媒介层根据接收到的数据流进入下一传输状态。
于一实施例中,清空指令为对弹性缓存的复位指令。缓存清空模块502用于:控制物理编码子层解析清空指令,根据解析结果触发弹性缓存的复位机制。
于一实施例中,清空指令包括:预定命令。
于一实施例中,控制物理编码子层解析清空指令,根据解析结果触发弹性缓存的复位机制,包括:控制物理编码子层解析清空指令,当解析出预定命令,并且预定命令是发送给预定地址时,触发弹性缓存的复位机制。
于一实施例中,媒介层通过消息总线发送清空指令到物理编码子层。
于一实施例中,指令发送模块501用于:在媒介层重新确定数据通道的数量时,经预设延时后,控制媒介层发送清空指令到物理编码子层。
于一实施例中,通过延时寄存器,在媒介层在重新确定数据通道的数量时,控制媒介层经预设延时后发送清空指令到物理编码子层。
上述数据传输装置500的详细描述,请参见上述实施例中相关方法步骤的描述。
本发明实施例还提供了一种非暂态电子设备可读存储介质,包括:程序,当其在电子设备上运行时,使得电子设备可执行上述实施例中方法的全部或部分流程。其中,存储介质可为磁盘、光盘、只读存储记忆体(Read-Only Memory,ROM)、随机存储记忆体(RandomAccess Memory,RAM)、快闪存储器(Flash Memory)、硬盘(Hard Disk Drive,缩写:HDD)或固态硬盘(Solid-State Drive,SSD)等。存储介质还可以包括上述种类的存储器的组合。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。
Claims (13)
1.一种数据传输方法,其特征在于,包括:
在媒介层重新确定数据通道的数量后,控制媒介层发送清空指令到物理编码子层;
控制所述物理编码子层解析所述清空指令,根据解析结果控制所述物理编码子层清空弹性缓存;
在所述弹性缓存完成清空后,控制所述物理编码子层向所述媒介层传输数据流;
控制所述媒介层根据接收到的所述数据流进入下一传输状态。
2.根据权利要求1所述的方法,其特征在于,所述清空指令为对所述弹性缓存的复位指令;所述控制所述物理编码子层解析所述清空指令,根据解析结果控制所述物理编码子层清空弹性缓存,包括:
控制所述物理编码子层解析所述清空指令,根据解析结果触发所述弹性缓存的复位机制。
3.根据权利要求2所述的方法,其特征在于,所述清空指令包括:预定命令。
4.根据权利要求3所述的方法,其特征在于,所述控制所述物理编码子层解析所述清空指令,根据解析结果触发所述弹性缓存的复位机制,包括:
控制所述物理编码子层解析所述清空指令,当解析出所述预定命令,并且所述预定命令是发送给预定地址时,触发所述弹性缓存的复位机制。
5.根据权利要求2所述的方法,其特征在于,还包括:
在所述弹性缓存进入复位机制时,控制所述物理编码子层停止向所述媒介层传输数据流。
6.根据权利要求1所述的方法,其特征在于,所述媒介层通过消息总线发送所述清空指令到所述物理编码子层。
7.根据权利要求1所述的方法,其特征在于,所述在媒介层重新确定数据通道的数量后,控制媒介层发送清空指令到物理编码子层,包括:
在所述媒介层重新确定数据通道的数量时,经预设延时后,控制所述媒介层发送所述清空指令到所述物理编码子层。
8.根据权利要求7所述的方法,其特征在于,通过延时寄存器,在所述媒介层在重新确定数据通道的数量时,控制所述媒介层经所述预设延时后发送所述清空指令到所述物理编码子层。
9.一种数据传输装置,其特征在于,包括:
指令发送模块,用于在媒介层重新确定数据通道的数量后,控制媒介层发送清空指令到物理编码子层;
缓存清空模块,用于控制所述物理编码子层解析所述清空指令,根据解析结果控制所述物理编码子层清空弹性缓存;
数据传输模块,用于在所述弹性缓存完成清空后,控制所述物理编码子层向所述媒介层传输数据流;
跳转模块,用于控制所述媒介层根据接收到的所述数据流进入下一传输状态。
10.根据权利要求9所述的装置,其特征在于,所述清空指令为对所述弹性缓存的复位指令;所述缓存清空模块用于:
控制所述物理编码子层解析所述清空指令,根据解析结果触发所述弹性缓存的复位机制。
11.根据权利要求9所述的装置,其特征在于,所述指令发送模块用于:
在所述媒介层重新确定数据通道的数量时,经预设延时后,控制所述媒介层发送所述清空指令到所述物理编码子层。
12.一种电子设备,其特征在于,包括:
存储器,用以存储计算机程序;
处理器,用以执行所述计算机程序,以实现如权利要求1至8中任一项所述的方法。
13.一种非暂态电子设备可读存储介质,其特征在于,包括:程序,当其藉由电子设备运行时,使得所述电子设备执行权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111435570.XA CN114090494B (zh) | 2021-11-29 | 2021-11-29 | 数据传输方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111435570.XA CN114090494B (zh) | 2021-11-29 | 2021-11-29 | 数据传输方法、装置、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114090494A CN114090494A (zh) | 2022-02-25 |
CN114090494B true CN114090494B (zh) | 2024-04-05 |
Family
ID=80305488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111435570.XA Active CN114090494B (zh) | 2021-11-29 | 2021-11-29 | 数据传输方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114090494B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040034225A (ko) * | 2002-10-21 | 2004-04-28 | 국방과학연구소 | 프레임 동기를 유지하는 탄성버퍼 및 이를 이용한 노드간클럭 편차 검출 방법 |
CN102148743A (zh) * | 2010-02-05 | 2011-08-10 | 联芯科技有限公司 | 一种数据流量的控制方法、装置及移动终端 |
KR20130048091A (ko) * | 2011-11-01 | 2013-05-09 | 한국전자통신연구원 | 고속 이더넷 광링크 인터페이스에서 다중 레인 운용 장치 및 방법 |
CN106453028A (zh) * | 2013-09-13 | 2017-02-22 | 华为技术有限公司 | 传输数据的方法和装置 |
CN206173185U (zh) * | 2016-11-12 | 2017-05-17 | 深圳市林外林园林工程有限公司 | 生态污水处理系统 |
CN112433596A (zh) * | 2020-11-27 | 2021-03-02 | 海光信息技术股份有限公司 | 链路宽度调节方法、装置、设备和存储介质 |
CN112448867A (zh) * | 2020-11-26 | 2021-03-05 | 海光信息技术股份有限公司 | 信号延时测试方法、装置、计算机可读存储介质及电子设备 |
CN112684994A (zh) * | 2020-12-24 | 2021-04-20 | 苏州华兴源创科技股份有限公司 | 多通道资源调整方法和计算机可读存储介质 |
CN112738229A (zh) * | 2020-12-29 | 2021-04-30 | 北京航天自动控制研究所 | 一种实现数据自动续传的通信方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008073106A1 (en) * | 2006-12-15 | 2008-06-19 | Thomson Licensing | Media access control protocol data unit aggregation in a time division multiple access media access control layer |
US20140032857A1 (en) * | 2012-07-25 | 2014-01-30 | Vidyalakshmi Rajagopalan | Methods and apparatus for merging shared cache line data in a bus controller |
US9558125B2 (en) * | 2014-10-27 | 2017-01-31 | Sandisk Technologies Llc | Processing of un-map commands to enhance performance and endurance of a storage device |
US10645442B2 (en) * | 2018-08-21 | 2020-05-05 | Seagate Technology Llc | Efficient write cache staging of multi-channel stream appendices |
US11940878B2 (en) * | 2020-02-13 | 2024-03-26 | EMC IP Holding Company LLC | Uninterrupted block-based restore operation using a read-ahead buffer |
-
2021
- 2021-11-29 CN CN202111435570.XA patent/CN114090494B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040034225A (ko) * | 2002-10-21 | 2004-04-28 | 국방과학연구소 | 프레임 동기를 유지하는 탄성버퍼 및 이를 이용한 노드간클럭 편차 검출 방법 |
CN102148743A (zh) * | 2010-02-05 | 2011-08-10 | 联芯科技有限公司 | 一种数据流量的控制方法、装置及移动终端 |
KR20130048091A (ko) * | 2011-11-01 | 2013-05-09 | 한국전자통신연구원 | 고속 이더넷 광링크 인터페이스에서 다중 레인 운용 장치 및 방법 |
CN106453028A (zh) * | 2013-09-13 | 2017-02-22 | 华为技术有限公司 | 传输数据的方法和装置 |
CN206173185U (zh) * | 2016-11-12 | 2017-05-17 | 深圳市林外林园林工程有限公司 | 生态污水处理系统 |
CN112448867A (zh) * | 2020-11-26 | 2021-03-05 | 海光信息技术股份有限公司 | 信号延时测试方法、装置、计算机可读存储介质及电子设备 |
CN112433596A (zh) * | 2020-11-27 | 2021-03-02 | 海光信息技术股份有限公司 | 链路宽度调节方法、装置、设备和存储介质 |
CN112684994A (zh) * | 2020-12-24 | 2021-04-20 | 苏州华兴源创科技股份有限公司 | 多通道资源调整方法和计算机可读存储介质 |
CN112738229A (zh) * | 2020-12-29 | 2021-04-30 | 北京航天自动控制研究所 | 一种实现数据自动续传的通信方法 |
Non-Patent Citations (1)
Title |
---|
高速接口中多指针弹性缓冲器设计;程国林;常红;柯导明;张平;;中国科学技术大学学报;20171015(10);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114090494A (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9229897B2 (en) | Embedded control channel for high speed serial interconnect | |
TWI731200B (zh) | 使用i2c匯流排與主機連接的從機及其通信方法 | |
US20130097460A1 (en) | Method of testing universal flash storage (ufs) interface and memory device implementing method of testing ufs interface | |
KR102559387B1 (ko) | PCIe 인터페이스 장치 및 그 동작 방법 | |
US11567893B2 (en) | Method and a mirrored serial interface (MSI) for transferring data | |
EP2423822A2 (en) | Methods and apparatus for improved serial advanced technology attachment performance | |
US11042500B1 (en) | Systems and methods for high-speed data transfer over a communication interface | |
EP2423823A2 (en) | Methods and apparatus for improved host/initiator utilization in serial advanced technology attachment communication | |
EP3200089A1 (en) | Method, apparatus, communication equipment and storage media for determining link delay | |
CN115437978A (zh) | 高速外围组件互连接口装置及其操作方法 | |
US11797468B2 (en) | Peripheral component interconnect express device and computing system including the same | |
US7549009B2 (en) | High-speed PCI interface system and a reset method thereof | |
US20240111706A1 (en) | Frame alignment recovery for a high-speed signaling interconnect | |
CN109992556A (zh) | 一种i2c驱动方法和装置 | |
CN114090494B (zh) | 数据传输方法、装置、设备和存储介质 | |
US7373541B1 (en) | Alignment signal control apparatus and method for operating the same | |
KR102669925B1 (ko) | PCIe 인터페이스 장치 및 그 동작 방법 | |
EP1242897B1 (en) | Method and apparatus for differential strobing in a communications bus | |
US11216398B2 (en) | USB device and data transfer method thereof | |
US20220374319A1 (en) | Peripheral component interconnect express device and operating method thereof | |
EP2637105A1 (en) | Communication device, method and system | |
CN117955583A (zh) | 用于互连协议的通道同步的方法、控制器以及存储装置 | |
CN118069556A (zh) | 软件模拟实现uart通信的方法 | |
JP5921264B2 (ja) | シリアル通信システムおよびその通信初期化の方法、並びにシリアル通信装置およびその通信初期化の方法 | |
CN115842605A (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 |