一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

高速外围组件互连接口装置及其操作方法与流程

2023-04-12 11:31:30 来源:中国专利 TAG:

高速外围组件互连接口装置及其操作方法
1.相关申请的交叉引用
2.本技术要求于2021年6月1日向韩国知识产权局提交的、申请号为10-2021-0070676的韩国专利申请的优先权,该韩国专利申请的全部公开内容通过引用并入本文。
技术领域
3.各个实施例总体上涉及一种电子装置,并且更特别地,涉及一种高速外围组件互连(pcie)接口装置以及操作pcie接口装置的方法。


背景技术:

4.高速外围组件互连(pcie)是指具有用于数据通信的串行配置的接口。基于pcie的存储装置可以支持多端口和多功能。基于pcie的存储装置可以是虚拟化的或非虚拟化的,并且通过至少一种pcie功能来实现主机i/o命令的服务质量(qos)。
5.存储装置可以在诸如计算机或智能电话的主机装置的控制下存储数据。存储装置可以包括存储数据的存储器装置以及控制存储器装置的存储器控制器。存储器装置可以划分为易失性存储器装置和非易失性存储器装置。
6.易失性存储器装置只要供电就可以保持数据,并且在没有供电的情况下可能会丢失所存储的数据。易失性存储器装置的类型可以包括静态随机存取存储器(sram)、动态随机存取存储器(dram)等。
7.非易失性存储器装置即使在没有供电的情况下也不会丢失数据。非易失性存储器装置的类型可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)、闪速存储器等。


技术实现要素:

8.本公开的各个实施例涉及一种在发生主机非预期的链路断开时完成对命令的处理的pcie接口装置以及操作pcie接口装置的方法。
9.根据实施例,一种高速外围组件互连(pcie)接口装置可以包括:事务层,生成用于发送事务的事务数据包;数据链路层,基于所述事务数据包生成包括保护码和所述事务数据包的序列号的链路数据包;物理层,基于链路数据包生成物理数据包并且顺序地输出物理数据包;链路训练模块,针对通过所述物理层联接的链路执行协商,并且基于在所述链路的协商未执行时发生的链路断开是否是由主机请求的来保持数据信息;以及pcie寄存器,存储关于事务层、数据链路层、物理层和链路训练模块的数据信息。
10.根据实施例,一种操作高速外围组件互连(pcie)接口装置的方法可以包括:由事务层生成用于发送事务的事务数据包;由数据链路层基于事务数据包生成包括保护码和事务数据包的序列号的链路数据包;由物理层基于链路数据包生成物理数据包并且顺序地输出物理数据包;通过发送和接收物理数据包针对通过物理层联接的链路执行协商;并且基于在所述链路的协商未执行时发生的链路断开是否是由主机请求的来保持数据信息。
附图说明
11.图1是示出根据本公开实施例的pcie接口装置的框图。
12.图2是示出根据本公开实施例的pcie接口装置中包括的配置之间的数据包的发送的示图。
13.图3是示出根据本公开实施例的pcie接口装置中包括的配置中的每一个中包括的层的示图。
14.图4是示出根据本公开实施例的链路训练状态机(ltssm)的示图。
15.图5是示出根据本公开实施例的ltssm的状态的示图。
16.图6是示出根据本公开实施例的链路接通过程的示图。
17.图7是示出根据本公开实施例的主机预期的链路断开和主机非预期的链路断开的示图。
18.图8是示出根据本公开实施例的与主机预期的链路断开相关的链路训练状态机(ltssm)的示图。
19.图9是示出根据本公开实施例的当链路断开是主机预期的时pcie接口装置的操作的示图。
20.图10是示出根据本公开实施例的图9的pcie接口装置的操作的示图。
21.图11是示出根据本公开实施例的当链路断开是主机非预期的时pcie接口装置的操作的示图。
22.图12是示出根据本公开实施例的当链路断开是主机非预期的时pcie接口装置的操作的示图。
23.图13是示出根据本公开实施例的图12的pcie接口装置的操作的示图。
24.图14是示出根据本公开实施例的操作pcie接口装置的方法的流程图。
具体实施方式
25.根据本说明书中公开的构思的实施例的示例的具体结构或功能描述仅用于描述根据该构思的实施例的示例。根据该构思的实施例的示例可以以各种形式执行,然而描述不限于本说明书中描述的实施例的示例。
26.图1是示出根据本公开实施例的高速外围组件互连(pcie)接口装置的框图。
27.参照图1,pcie接口装置100可以包括中央处理单元(cpu)110、根联合体(root complex)120、存储器130、交换机140、pcie端点150_1至150_3、传统端点(legacy endpoint)160_1和160_2以及pcie至pci/pci-x桥170。
28.在图1中,根联合体120可以通过链路link联接到交换机140、pcie端点150_1至150_3以及pcie至pci/pci-x桥170中的每一个。另外,交换机140可以通过链路link联接到pcie端点150_1至150_3以及传统端点160_1和160_2中的每一个。链路link可以包括至少一个通道。
29.根据实施例,根联合体120可以将cpu 110和存储器130连接到输入/输出(i/o)层次结构。
30.更具体地,根联合体120可以支持pcie端口。换言之,根联合体120可以支持可以联接到输入/输出(i/o)装置的根端口。
31.另外,根联合体120可以支持pcie接口装置100中包括的每个配置的层间路由。路由可以指在数据通信中选择从发送侧到接收侧的路径的操作。可以使用预先设置从发送侧到接收侧的路径的方法或者根据系统或网络的状态选择效率最高的路径的方法来执行路由。
32.另外,根联合体120可以支持输入/输出(i/o)请求。根联合体120可以支持配置请求的生成。然而,根联合体120可能不支持作为完成者的锁定语义(locking semantic)。根联合体120可以作为请求者支持锁定请求的生成。
33.根据实施例,根联合体120可以将数据包拆分为在层次结构之间发送的较小数据包。另外,根联合体120可以生成i/o请求。
34.根据实施例,交换机140可以包括两个或更多个逻辑pci到pci桥。两个或更多个逻辑pci到pci桥中的每一个可以联接到上游端口或下游端口。
35.交换机140可以使用pci桥机制(基于地址的多播)来发送事务。交换机140可以通过上游端口和下游端口发送所有类型的事务层数据包(也称为事务数据包)(tlp)。另外,交换机140可以支持锁定请求。所启用的交换机140的每个端口可以支持流控制。当在同一虚拟通道上发生争用时,交换机140可以使用循环或加权循环方案来实施仲裁。
36.根据实施例,与根联合体120不同,交换机140可能无法将数据包拆分为在层次结构之间发送的较小数据包。
37.根据实施例,pcie端点150_1至150_3以及传统端点160_1和160_2中的每一个可以用作pcie事务的请求者或完成者。pcie端点150_1至150_3和传统端点160_1和160_2所发送或接收的事务层数据包(tlp)可以提供配置空间报头(configuration space header)。另外,pcie端点150_1至150_3和传统端点160_1和160_2中的每一个可以作为完成者提供配置请求。
38.根据实施例,pcie端点150_1至150_3和传统端点160_1和160_2可以根据存储器事务可能的大小进行分类。例如,当存储器事务可能超过4gb时,端点可以是pcie端点(150_1至150_3)。另一方面,当存储器事务不可能超过4gb时,端点可以是传统端点(160_1和160_2)。虽然不允许pcie端点150_1至150_3生成i/o请求,但传统端点160_1和160_2可以提供或生成i/o请求。
39.根据实施例,pcie端点150_3可以向根联合体120发送tlp或者从根联合体120接收tlp。另外,pci/pci-x可以通过pcie至pci/pci-x桥170向根联合体120发送tlp或者从根联合体120接收tlp。另外,pcie端点150_1和150_2与传统端点160_1和160_2可以向交换机140发送tlp或者从交换机140接收tlp。
40.根据实施例,交换机140可以将从pcie端点150_1和150_2与传统端点160_1和160_2接收的tlp发送到根联合体120。交换机140可以将从根联合体120接收的tlp发送到pcie端点150_3或pci/pci-x(未示出)。
41.根据实施例,根联合体120可以直接向pcie端点150_3发送tlp或者从pcie端点150_3接收tlp。根联合体120可以通过交换机140向pcie端点150_1和150_2与传统端点160_1和160_2发送tlp,或者从pcie端点150_1和150_2与传统端点160_1和160_2接收tlp。根联合体120可以将从pcie端点150_1和150_2与传统端点160_1和160_2接收的tlp发送到cpu 110或存储器130。
42.图2是示出根据本公开实施例的pcie接口装置中包括的配置之间的数据包发送的示图。
43.参照图1和图2,图2所示的pcie组件1和2中的每一个可以是图1所示的根联合体120、交换机140、pcie端点150_1至150_3、传统端点160_1和160_2以及pcie至pci/pci-x桥170中的一个。换言之,如图2所示的pcie组件1和2中的每一个可以是组件中通过链路link联接到另一组件的一个组件。链路link可以包括至少一个通道。
44.根据实施例,pcie组件1和2可以通过链路link发送或接收数据包。换言之,pcie组件1和2中的每一个可以用作用于发送数据包的发送器tx或用于接收数据包的接收器rx。
45.根据实施例,数据包可以是信息发送单位并且包括选择性的tlp前缀、报头和有效载荷。
46.根据实施例,可以通过不监听不需要高速缓存的数据包来减少延迟。当事务之间不存在依赖关系时,可以通过改变排序来提高数据包操作性能。另外,通过基于id修改排序,可以提高数据包操作性能。
47.图3是示出根据本公开实施例的pcie接口装置中包括的配置中的每一个中包括的层的示图。
48.参照图2和图3,图3示出了图2的pcie组件1和2中的每一个中包括的层。在图3中,pcie组件1和2可以分别包括事务层211和221、数据链路层212和222以及物理层213和223。物理层213和223可以分别包括逻辑子块213_1和223_1以及物理子块213_2和223_2。
49.根据实施例,事务层211和221可以组装或分解事务层数据包(tlp)。事务层数据包(tlp)可以用于处理事务(即,某种类型的事件),诸如发送、读取和写入事务。
50.事务层211和221可以管理基于信用的流控制。另外,事务层211和221可以根据事务的类型支持各种寻址格式。例如,事务层211和221可以支持关于存储器、i/o、配置和消息的寻址。
51.根据实施例,事务层211和221可以执行初始化和配置功能。更具体地,事务层211和221可以存储处理器或管理装置所生成的链路配置信息。另外,事务层211和221可以存储与物理层213和223所确定的带宽和频率相关的链路属性。
52.根据实施例,事务层211和221可以生成和处理数据包。更具体地,事务层211和221可以生成装置内核所请求的tlp,并且将接收到的tlp转换为有效载荷或状态信息。另外,当支持端到端数据完整性时,事务层211和221可以生成循环冗余码(crc)并更新tlp报头。
53.根据实施例,事务层211和221可以执行流控制。更具体地,事务层211和221可以跟踪跨链路的tlp的流控制信用。另外,事务层211和221可以通过数据链路层212和222周期性地接收事务信用状态。事务层211和221可以基于流控制信息来控制tlp发送。
54.根据实施例,事务层211和221可以实施电源管理。更具体地,事务层211和221可以根据系统软件的指令来管理电源。另外,当电源接通时,事务层211和221可以根据硬件指令执行自主电源管理。
55.根据实施例,事务层211和221可以针对某些类别的应用提供虚拟通道机制和流量分类识别。事务层211和221可以通过预定物理资源提供独立的逻辑数据流。另外,事务层211和221可以通过数据包标记提供不同的排序来应用适当的服务策略。
56.根据实施例,数据链路层212和222的职责可以包括链路管理、数据完整性、错误检
测和错误校正。数据链路层212和222可以基于事务数据包生成包括保护码和事务数据包的序列号的链路数据包。数据链路层212和222可以将数据保护码和tlp序列号应用于待发送的tlp,并且可以将数据保护码和tlp序列号发送到物理层213和223。另外,数据链路层212和222可以检查从物理层213和223接收的tlp的完整性并且可以将tlp发送到事务层211和221。
57.当检测到tlp中的错误时,数据链路层212和222可以接收没有错误的tlp,或者可以请求重新发送tlp,直到确定链路具有故障状态。数据链路层212和222可以生成和消耗用于链路管理的数据链路层数据包(也称为链路数据包)(dllp)。
58.根据实施例,数据链路层212和222可以交换可靠信息。另外,数据链路层212和222可以执行初始化和电源管理。更具体地,数据链路层212和222可以分别向物理层213和223发送事务层211和221的电源状态请求。另外,数据链路层212和222可以向事务层211和221发送关于启用/停用、复位、断开连接和电源管理状态的信息。
59.根据实施例,数据链路层212和222可以执行数据保护、错误检查以及促进重试发送。更具体地,数据链路层212和222可以生成crc。另外,数据链路层212和222可以存储所发送的tlp以启用对tlp的重试。数据链路层212和222可以检查tlp、发送重试消息并且显示用于错误报告和记录的错误。
60.根据实施例,物理层213和223可以包括用于操作接口的配置,诸如驱动器、输入缓冲器、并行到串行或串行到并行转换器以及锁相环路(pll)。
61.根据实施例,物理层213和223可以将从数据链路层212和222接收的数据包转换为串行化格式以发送数据包。另外,物理层213和223可以根据与连接到链路另一侧的装置或组件的兼容性来设置带宽和频率。物理层213和223可以执行数据包的并行到串行转换,然后执行串行到并行转换以实现串行数据通信。换言之,物理层213和223可以各自用作串行器或解串器。
62.根据实施例,物理层213和223可以执行接口初始化、保持控制和状态跟踪。更具体地,物理层213和223可以执行互连电源管理。另外,物理层213和223可以协商组件之间的带宽和通道映射并反转通道极性。
63.物理层213和223可以生成符号和串行有序集。另外,物理层213和223可以发送和对齐生成的符号。
64.根据实施例,物理层213和223可以用作pcie组件之间的数据包的发送器或接收器。换言之,物理层213和223可以转换通过事务层211和221以及数据链路层212和222接收的数据包,并且可以将转换后的数据包发送到其他pcie组件。另外,物理层213和223可以转换从其他pcie组件接收的数据包,以通过数据链路层212和222将转换后的数据包发送到事务层211和221。物理层213和223可以基于链路数据包生成物理数据包并顺序地输出物理数据包。
65.根据实施例,物理层213和223中包括的逻辑子块213_1和223_1中的每一个可以包括两个部分。两个部分中的一个可以是发送器部分,其准备发送从数据链路层212和222发送到物理子块213_2和223_2的信息。另一部分可以是接收器部分,其在将接收到的信息输出到数据链路层212和222之前识别和准备该信息。
66.根据实施例,物理层213和223中包括的物理子块213_2和223_2中的每一个可以是
共同地或单独地支持独立参考时钟架构的电子块。另外,物理子块213_2和223_2可以减少低功率链路操作的摆动、检测带内接收器和检测电气空闲状态。
67.图4是示出根据本公开实施例的链路训练状态机(ltssm)的示图。
68.参照图1和图4,图4示出了cpu 110、根联合体120、交换机140以及装置180_1和180_2(连接到端点)。图4的组件中的每一个可以包括链路训练状态机(也称为链路训练模块)(ltssm)。ltssm可以交换训练序列(例如,ts1和ts2)以协商多个链路参数,诸如配置连接各个组件的链路的通道的极性、链路或通道的数量、均衡性、以及数据发送速度。ltssm可以针对通过物理层联接的链路执行协商,并且基于在链路的协商未执行时发生的链路断开是否是由主机请求的来保持数据信息。
69.根据实施例,在pcie环境中,ltssm可以是基于硬件的处理器,其由物理层(图3的213或223)控制并且通过配置和初始化用于正常操作的组件之间的链路和端口来启用数据发送。一条链路可以具有十一种状态中的一种,包括检测状态和轮询状态,并且每个状态可以具有子状态。
70.下面将参照图5更详细地描述链路可以具有的各种状态之间的流。
71.根据实施例,为了配置用于连接组件的端口,每个单独的链路可能需要单独的ltssm。例如,为了配置用于连接根联合体120和装置180_2的端口,根联合体120和装置180_2中的每一个可以包括ltssm。另外,为了配置用于连接根联合体120和交换机140的端口,根联合体120和交换机140中的每一个可以包括ltssm。进一步地,为了配置用于连接交换机140和装置180_1的端口,交换机140和装置180_1中的每一个可以包括ltssm。
72.根据实施例,交换机140的端口之中靠近根联合体120的端口可以是上游端口,而远离根联合体120的端口可以是下游端口。上游端口和下游端口可以分别与根联合体120和装置180_1交换训练序列(例如,ts1和ts2)以实现ltssm转变的同步。对于ltssm转变的同步,上游端口和下游端口可以彼此独立并且可以互不影响。
73.根据实施例,cpu 110可以不受每个组件的ltssm的影响。因此,当发生主机不期望的链路断开时,可能会导致蓝屏错误。
74.图5是示出根据本公开实施例的ltssm的状态的示图。
75.参照图4和图5,图5中的状态示出了ltssm转变同步中的每个步骤。
76.根据实施例,检测(detect)步骤可以指检测连接到图2的pcie组件1和2的两端的链路的步骤。换言之,可以在detect步骤中搜索物理联接的通道。
77.detect步骤可以是ltssm的初始步骤并且在复位之后或在启动时进入。另外,在detect步骤中,所有逻辑、端口和寄存器都可以复位。detect步骤可以在引导时进入。ltssm可以从detect步骤进入轮询(polling)步骤。
78.根据实施例,在polling步骤中,可以从检测到的通道之中区分启用数据通信的通道。换言之,在polling步骤中,pcie组件1和2两端的时钟可以同步,并且可以检查通道的极性(d 或d-)和可用的数据发送速度。进一步地,在polling步骤中,可以检查数据中连续位之间的边界。根据实施例,ltssm可以从polling步骤进行到配置(configuration)步骤。
79.根据实施例,在configuration步骤中,可以检查通道的连接状态。例如,在configuration步骤中,可以确定启用数据通信的通道宽度。另外,在configuration步骤中,可以将训练序列中标记为pad的位改变为协商编号(negotiated number),并且可以执
行两个装置最佳性能的协商。在configuration步骤中,发送器和接收器可以以所协商的数据发送和接收速率来发送和接收数据。另外,在configuration步骤中,可以解决各个通道的并行位流在不同的时间到达不同的装置的通道到通道去偏斜(lane to lane de-skew)问题。
80.根据实施例,在configuration步骤中,ltssm可以进行到detect步骤、l0步骤、恢复(recovery)步骤、环回(loopback)步骤或停用(disabled)步骤。
81.根据实施例,在l0步骤中,可以正常发送和接收数据和控制数据包。换言之,可以发送和接收事务层数据包(tlp)和数据链路层数据包(dllp)。另外,所有电源管理状态都可以从l0步骤开始。l0步骤可以是正常操作状态。l0步骤可以是完全活动状态。
82.根据实施例,ltssm可以从l0步骤进行到l1步骤、l2步骤、l0s步骤或recovery步骤。
83.根据实施例,l0s步骤、l1步骤和l2步骤中的每一个可以作为或用作省电状态。
84.更具体地,l0s步骤可以是l0步骤的子状态。l0s步骤可以允许链路快速地进入节能状态以及从节能状态中恢复,而无需经过recovery步骤。另外,从l0s步骤到l0步骤的转变可以重新建立位锁定、符号锁定和通道到通道去偏斜。两端的端口的发送器和接收器不一定要同时处于l0s步骤以返回到l0步骤。ltssm可以从l0s步骤转变到l0步骤或recovery步骤。
85.更具体地,尽管l1步骤返回到l0步骤比l0s步骤返回到l0步骤更慢,但是l1步骤可以以附加的恢复延迟为代价而与l0步骤相比允许节省额外的电力。可以通过活动状态电源管理(aspm)或电源管理软件进入l1步骤。当不使用经由pcie连接的装置时,aspm可以参考将链路改变为省电状态的策略。电源管理软件可以参考将经由pcie连接的装置改变为省电状态的策略。
86.另外,可以在被数据链路层(图3中的212或222)引导并且接收到电气空闲有序集(electrical idle ordered set,eios)之后进入l1步骤。ltssm可以从l1步骤进行到recovery步骤。
87.更具体地,可以在l2步骤中积极地省电,并且可以关闭pcie连接装置的发送器和接收器。在l2步骤中,可能无法保证电源和时钟,但可以提供aux电源。可以在被数据链路层(图3中的212或222)引导并且接收到电气空闲有序集(eios)之后进入l2步骤。ltssm可以从l2步骤进行到detect步骤。
88.根据实施例,当在l0步骤中发生错误时可以进入recovery步骤,并且可以在错误恢复之后再次转变到l0步骤。另外,当从l1步骤返回到l0步骤时可以进入recovery步骤,当进入loopback步骤、热复位(hot reset)步骤或disabled步骤时,流程可以转变到recovery步骤。
89.在recovery步骤中,可以重新建立位锁定、符号锁定或块对齐以及通道到通道去偏斜。另外,在recovery步骤中,可以改变通道的速度。
90.根据实施例,ltssm可以从recovery步骤进入l0步骤、configuration步骤、detect步骤、loopback步骤、hot reset步骤或disabled步骤。
91.根据实施例,loopback步骤可以旨在用于测试,并且在测量位错误率时进入。loopback步骤可以复位链路并使用训练序列(例如,ts1和ts2)的训练控制字段中的第2位,
并且接收器可以重新发送所有接收到的数据包。ltssm可以在loopback步骤中测量位错误率并进行到detect步骤。
92.根据实施例,hot reset步骤可以复位链路并使用训练序列(例如,ts1和ts2)中的第0位。ltssm可以从hot reset步骤进行到detect步骤。
93.根据实施例,当接收器处于低阻抗状态时,disabled步骤可以使发送器处于电气空闲状态。在disabled步骤中,可以停用链路直到电气空闲状态终止。disabled步骤可以使用训练序列(例如,ts1和ts2)的训练控制字段中的第1位。ltssm可以在上一步骤的引导下进入disabled步骤。ltssm可以从disabled步骤进入detect步骤。
94.在图5中,链路接通可以指示从detect步骤经由polling步骤和configuration步骤到l0步骤的转变,并且链路断开可以指示再次转变到detect步骤。
95.另外,ltssm可以在每个步骤设置链路接通寄存器值。例如,当链路接通寄存器的值为“1”时,链路接通寄存器可能处于链路接通状态,而当链路接通寄存器的值为“0”时,链路接通寄存器可能处于链路断开状态。当ltssm第一次进入l0步骤时,链路接通寄存器可以被设置为“1”。
96.更具体地,对应于detect步骤、polling步骤、configuration步骤、loopback步骤、hot reset步骤与disabled步骤的链路接通寄存器可以被设置为“0”。对应于l0步骤、l0s步骤、l1步骤和l2步骤的链路接通寄存器可以被设置为“1”。
97.根据实施例,在链路断开期间,数据可以被清除,并且pcie寄存器和nvme寄存器可以被复位。因此,主机可以初始化pcie寄存器和nvme寄存器。当链路断开是主机预期的时,主机可以初始化pcie和nvme。pcie寄存器可以存储关于事务层、数据链路层、物理层和链路训练模块的数据信息,并且可以包括联接到端点的nvme模块中包括的数据信息。
98.然而,例如,在突然的链路断开(其为主机非预期的)的情况下,可能会发生故障,诸如无法改变数据发送和接收速率、无法改变通道以及无法终止省电。另外,可能会发生ltssm超时,并且ltssm可能会转变到detect步骤。非预期的突然链路断开可能是两个端口之间的链路断开。因此,操作系统(os)和nvme驱动器可能不会感知到突然的链路断开。因此,主机可能在未初始化pcie和nvme的情况下尝试访问装置,并且可能会由于复位值而导致蓝屏或主机操作中断。
99.图6是示出根据本公开实施例的链路接通过程的示图。
100.参照图5和图6,除了pcie寄存器(pcie reg)和nvme的步骤之外,图6还示出了通过图5所示步骤的链路接通过程。
101.根据实施例,ltssm可以从detect步骤通过polling步骤和configuration步骤转变到l0步骤,这被称为链路接通。在l0步骤中,ltssm可以正常发送和接收事务层数据包(tlp)和数据链路层数据包(dllp)。
102.根据实施例,通过链路连接的两个端口处的接收器rx和发送器tx可以处于电气空闲状态(elecidle)。另外,两个端口处的接收器rx和发送器tx可以通过在polling步骤和configuration步骤中发送和接收训练序列(例如,ts1和ts2)来同步ltssm转变。在l0步骤中,两个端口处的接收器rx和发送器tx可以处于接收器rx和发送器tx发送和接收事务层数据包(tlp)的状态(tlp transmissible)。
103.根据实施例,pcie寄存器(pcie reg)可以在detect步骤、polling步骤和
configuration步骤期间处于默认状态(default)。pcie寄存器(pcie reg)可以在l0步骤中由主机初始化,然后可以处于有效状态。
104.根据实施例,nvme寄存器可以在pcie寄存器(pcie reg)被初始化之前保持非活动状态(inactive),并且可以在pcie寄存器(pcie reg)被初始化之后处于活动状态(active)。
105.图7是示出根据本公开实施例的主机预期的链路断开和主机非预期的链路断开的示图。
106.参照图5和图7,图7示出了主机预期的链路断开和主机非预期的链路断开。在图7中,虚线所指示的转变可以对应于主机预期的链路断开,而实线所指示的转变可以对应于主机非预期的链路断开。
107.根据实施例,可以基于转变到detect步骤之前的步骤来区分主机预期的链路断开和主机非预期的链路断开。
108.例如,当转变到detect步骤之前的步骤是l2步骤、hot reset步骤或disabled步骤时,链路断开可以对应主机预期的链路断开。另外,在另一示例中,当执行冷复位或热复位时,链路断开可以是主机预期的链路断开。冷复位可以指在上电复位(por)之后重新施加电力时开始链路训练,而热复位可以指在保持电力时发生的复位。
109.然而,当紧接在转变到detect步骤之前的步骤是configuration步骤或recovery步骤时,链路断开可以对应于主机非预期的链路断开。当在configuration步骤或recovery步骤(其可能发生在l0步骤之后)中发生超时时,主机非预期的链路断开可能会从detect步骤进行到l0步骤。
110.因此,公开了一种用于区分主机预期的链路断开与主机非预期的链路断开,包括在主机非预期的突然链路断开的情况下保持pcie寄存器和nvme寄存器的方法。
111.更具体地,为了区分主机预期的链路断开与主机非预期的突然链路断开,当链路接通寄存器从“1”变为“0”时,ltssm可以单独存储关于紧接在步骤改变之前的当前步骤的信息。
112.根据实施例,当被改变的步骤是loopback步骤、hot reset步骤或disabled步骤时,链路断开可以是主机预期的链路断开,而与紧接在前的步骤无关。
113.根据实施例,当被改变的步骤是detect步骤时,ltssm可以检查紧接在detect步骤之前的步骤。例如,当紧接在改变到detect步骤之前的步骤是l2步骤、hot reset步骤或disabled步骤时,链路断开可以对应主机预期的链路断开。然而,当紧接在改变到detect步骤之前的步骤是configuration步骤或recovery步骤时,链路断开可以对应于主机非预期的突然链路断开。
114.图8是示出根据本公开实施例的与主机预期的链路断开相关的链路训练状态机(ltssm)的示图。
115.参照图4和图8,图8示出了图4的cpu 110通过交换机140的下游端口的pcie寄存器执行hot reset。与交换机140的其他端口相比,下游端口可以离根联合体120更远。下游端口可以通过与装置180_1交换训练序列(例如,ts1和ts2)来同步ltssm转变。hot reset步骤可以指复位链路的步骤。
116.根据实施例,hot reset步骤可以由下游端口的pcie寄存器执行。在hot reset步
骤之后,可以执行链路接通。换言之,ltssm可以从hot reset步骤进行到detect步骤。
117.因此,由于在转变到detect步骤之前的步骤是hot reset过程,因此链路断开可以是主机预期的链路断开。
118.图9是示出根据本公开实施例的当链路断开是主机预期的时的pcie接口装置的操作的示图。
119.参照图7和图9,图9示出了在图7的主机预期的链路断开的示例中,当链路断开从recovery步骤转变到hot reset步骤时,重新建立链路接通的过程中的pcie寄存器(pcie reg)和nvme的状态。
120.根据实施例,ltssm可以从l0步骤通过recovery步骤改变为hot reset步骤。由于紧接在转变到detect步骤之前的步骤是hot reset步骤,因此可以是主机预期的链路断开。ltssm可以在hot reset步骤中复位链路并再次转变为detect步骤。随后,ltssm可以在polling步骤和configuration步骤之后进入l0步骤,并且可以重新建立链路接通。
121.根据实施例,在l0步骤中,两个端口的发送器tx和接收器rx可以发送或接收事务层数据包(tlp)。然而,在recovery步骤和hot reset步骤中,两个端口的发送器tx和接收器rx可以发送和接收ts1(具有hot reset的ts1),而在detect步骤中,发送器tx和接收器rx可以处于电气空闲状态(elecidle)。
122.随后,在polling步骤和configuration步骤中,两个端口的发送器tx和接收器rx可以发送和接收ts1和ts2以区分启用数据通信的通道并检查通道的连接状态。根据实施例,当ltssm进入l0步骤时,两个端口的发送器tx和接收器rx可以发送或接收事务层数据包(tlp)。
123.根据实施例,pcie寄存器(pcie reg)在l0步骤和recovery步骤中可以是有效的(valid),但是当ltssm从recovery步骤进入hot reset步骤时可以改变为默认状态(default)。随后,当ltssm进入l0步骤时,pcie寄存器(pcie reg)可以被初始化(initialized)并变为有效状态(valid)。换言之,当发生主机预期的链路断开时,pcie寄存器(pcie reg)可以被初始化。
124.根据实施例,当在从l0步骤到recovery步骤的ltssm转变期间或者在从recovery步骤到hot reset步骤的转变期间,nvme具有活动状态(active)时,nvme可以清除正在进行的命令。随后,当nvme在configuration步骤中变为非活动状态(inactive),并且pcie寄存器(pcie reg)被初始化(initialized)时,nvme可以返回到活动状态(active)。换言之,当发生主机预期的链路断开时,nvme可以在激活之前执行清除。
125.例如,在完成命令的清除之后,nvme可以改变为非活动状态(inactive)并通过configuration步骤,并且可以在l0步骤中完成链路接通。然后,当pcie寄存器(pcie reg)被初始化(initialized)时,nvme可以被主机改变回活动状态(active)。
126.当主机向nvme发送配置请求时,如果nvme正在清除命令,则nvme可以通过返回配置请求重试状态(crs)来忽略配置请求。当主机向nvme发送配置请求时,如果nvme已完成清除命令,则nvme可以发送成功返回(sr)并进行初始化。
127.因此,os和驱动器可以感知到主机预期的链路断开,因此pcie寄存器(pcie reg)和nvme可以被初始化和激活。
128.图10是示出根据本公开实施例的图9的pcie接口装置的操作的示图。
129.参照图3和图10,图10示出了图3的pcie组件1(210)中包括的层(211、212和213)、重放缓冲器214、pcie寄存器215和高速非易失性存储器寄存器(nvme reg)1010。参照图9和图10,图10示出了图9的主机预期的链路断开的ltssm操作。图10的重放缓冲器214可以是存储用于重新发送的事务层数据包(tlp)的重试缓冲器。nvme寄存器(nvme reg)1010可以被包括在nvme模块中。
130.根据实施例,当发生主机预期的链路断开时,ltssm可以初始化事务层211、数据链路层212、物理层213、pcie寄存器215和nvme寄存器1010(initialization)。
131.ltssm可以通过链路断开中断以执行nvme复位来初始化nvme寄存器1010。如果nvme正在运行命令,则nvme可以清除正在运行的命令。当命令清除完成之后,nvme可以通过pcie入站路径再次执行初始化。
132.根据实施例,当发生主机预期的链路断开时,ltssm可以向事务层211返回关于每个事务的错误,并且可以在错误返回完成之后执行初始化。
133.图11是示出根据本公开实施例的当链路断开是主机非预期的时pcie接口装置的操作的示图。
134.参照图7和图11,图11示出了在图7主机非预期的链路断开的示例中,当链路断开从recovery步骤直接转变到detect步骤时,重新建立链路接通的过程中的pcie寄存器(pcie reg)和nvme的状态。
135.根据实施例,ltssm可以从recovery步骤改变到detect步骤。例如,当由于recovery步骤中的错误而发生超时(例如,二十四毫秒(24ms))时,ltssm可以从recovery步骤改变到detect步骤。
136.由于紧接在转变到detect步骤之前的步骤是recovery步骤,因此链路断开可以对应于主机非预期的突然链路断开。随后,ltssm可以通过polling步骤和configuration步骤进入l0步骤,并且可以重新建立链路接通。
137.根据实施例,在l0步骤中,两个端口的发送器tx和接收器rx可以发送或接收事务层数据包(tlp transmissible)。然而,由于错误(error),两个端口的发送器tx和接收器rx可能在recovery步骤中发送或接收ts1并且在detect步骤中可能处于电气空闲状态(elecidle)。
138.随后,在polling步骤和configuration步骤中,两个端口的发送器tx和接收器rx可以发送和接收ts1和ts2,以从检测到的通道之中区分启用数据通信的通道,并且可以检查通道的连接状态。当ltssm再次进入l0步骤时,两个端口的发送器tx和接收器rx可以发送或接收事务层数据包(tlp)。
139.根据实施例,pcie寄存器(pcie reg)在l0步骤和recovery步骤中可以是有效的(valid),但是可能由于ltssm超时(timeout)而从有效状态(valid)变为默认状态(default)。换言之,当发生主机非预期的链路断开时,pcie寄存器(pcie reg)可能会改变为默认状态(default),并且保持该状态。
140.根据实施例,在l0步骤和recovery步骤中处于活动状态(active)的nvme可以清除正在运行的命令。随后,在configuration步骤中,nvme可以改变为非活动状态(inactive),并且保持该状态。
141.当发生主机非预期的链路断开时,pcie寄存器(pcie reg)可以被初始化并且nvme
可以被复位。随着pcie寄存器(pcie reg)被初始化,关于基地址寄存器(bar)的信息可以被初始化。
142.因此,可能无法检查tlp地址,并且可能无法利用tlp访问nvme寄存器。因此,对应于nvme命令的操作可能无法进行。因此,可能会发生蓝屏死机(bsod)。
143.然而,根据本公开,当发生主机非预期的链路断开时,pcie寄存器(pcie reg)和nvme寄存器可以保持不被初始化,从而防止bsod的生成。
144.图12是示出根据本公开实施例的当链路断开是主机非预期的时pcie接口装置的操作的示图。
145.参照图7和图12,图12示出了在图7主机非预期的链路断开的示例中,当链路断开从recovery步骤直接转变到detect步骤时,重新建立链路接通的过程中的pcie寄存器(pcie reg)和nvme的状态。
146.参照图11和图12,除了pcie寄存器(pcie reg)和nvme的状态之外,图12与图11基本相同。因此,将省略多余的描述以简化图12的描述。
147.根据实施例,与图11不同,即使当ltssm timeout发生时,pcie寄存器(pcie reg)也可以保持有效状态(valid)。另外,即使当ltssm timeout发生时,nvme也可以保持活动状态(active)。
148.由于pcie寄存器(pcie reg)保持有效状态(valid)并且nvme保持活动状态(active),因此nvme可以执行对应于新nvme命令的操作以及对应于当前正在运行的命令的操作。
149.图13是示出根据本公开实施例的图12的pcie接口装置的操作的示图。
150.参照图3和图13,图13示出了图3的pcie组件1(210)中包括的层211、212和213、重放缓冲器214、pcie寄存器215和高速非易失性存储器寄存器(nvme reg)1010。参照图12和图13,图13示出了图12的主机非预期的链路断开的ltssm操作。主机非预期的链路断开可以是突然的链路断开。图13所示的重放缓冲器214可以是存储用于重新发送的事务层数据包(tlp)的重试缓冲器。nvme寄存器1010可以被包括在nvme模块中。
151.根据实施例,当发生主机非预期的链路断开时,与主机预期的链路断开相反,ltssm可以初始化物理层213和重放缓冲器214(initialization),并且可以保持事务层211、数据链路层212、pcie寄存器215和nvme寄存器1010(maintenance)。如果在物理层213和重放缓冲器214的初始化期间有任何数据丢失,则ltssm可以将数据丢失作为axi错误发送到nvme模块。ltssm可以通过突然的链路断开中断来保持nvme寄存器1010,并且执行与发生axi错误的命令相对应的操作。
152.根据实施例,当发生主机未预期的非预期突然链路断开时,所有的pcie控制寄存器都可以被保持,而pcie状态/性能寄存器只有一些可以被保持。pcie状态/性能寄存器的链路速度和协商的链路宽度可以被初始化。选择性地,因突然的链路断开导致的aer的可校正错误状态可以被初始化。
153.根据实施例,当发生主机非预期的突然链路断开时,nvme可以运行正在进行的命令。当由于超时(timeout)而导致错误从pcie组件返回nvme时,如果重新建立链路接通,则nvme可以再次执行与命令相对应的操作。
154.另外,当ltssm返回l0步骤并且重新建立链路接通时,nvme可以恢复运行正在进行
的命令。
155.因此,当发生主机非预期的突然链路断开时,可以通过保持pcie寄存器215和nvme寄存器1010来防止os或nvme驱动器的操作中断。
156.图14是示出根据本公开实施例的操作pcie接口装置的方法的流程图。
157.参照图14,在步骤s1401,ltssm可以处于链路接通状态。链路接通可以指从detect步骤通过polling步骤和configuration步骤转变到l0步骤。另外,链路接通可以指在每个步骤的链路接通寄存器被设置为“1”的状态。
158.在步骤s1403,ltssm可以处于链路断开状态。链路断开状态可以表示不同的步骤转变到detect步骤。另外,链路断开可以指在每个步骤的链路接通寄存器被设置为“0”的状态。
159.根据实施例,链路断开可以是主机预期的链路断开和主机非预期的突然链路断开。主机预期的链路断开可以意指ltssm响应于主机的请求而从链路接通状态改变为链路断开状态。主机非预期的突然链路断开不是主机所请求的,并且可以意指ltssm由于无法改变数据发送和接收速率、无法改变通道或无法终止省电而导致的超时而转变到detect步骤。
160.在步骤s1405,ltssm可以确定链路断开是否由主机请求。当链路断开是主机所请求的(y)时,进程可以进行到步骤s1407。当链路断开不是主机所请求的(n)时,即,当链路断开是突然的链路断开时,进程可以进行到步骤s1409。
161.在步骤s1407,ltssm可以初始化pcie寄存器和nvme寄存器。根据实施例,主机预期的链路断开可以导致数据被nvme寄存器清除并复位pcie寄存器和nvme寄存器。因此,ltssm可以初始化pcie寄存器和nvme寄存器。
162.在步骤s1409,ltssm可以保持pcie寄存器和nvme寄存器。根据实施例,os和nvme驱动器可能无法感知主机未请求的链路断开。因此,为了防止由于复位值而引起的蓝屏或主机操作的中断,ltssm可以保持pcie寄存器和nvme寄存器。
163.根据本公开,提供了一种能够在发生主机非预期的链路断开时完成命令的处理的pcie接口装置以及操作pcie接口装置的方法。
164.在以上讨论的实施例中,所有的步骤可以选择性地执行或跳过。另外,每个实施例中的步骤可以并不总是以经常的顺序执行。此外,本说明书和附图中所公开的实施例旨在帮助本领域普通技术人员更清楚地理解本公开,而非旨在限制本公开的范围。换言之,本公开所属领域的普通技术人员将能够容易地理解基于本公开的技术范围可以进行各种修改。对本领域技术人员显而易见的是,在不脱离本发明的精神或范围的情况下,可以对本公开的上述示例性实施例进行各种修改。因此,本公开旨在涵盖所有这些修改,只要它们落入所附权利要求及其等同方案的范围内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表