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

超高速通用串行总线控制方法与其实现的计算机系统与流程

2022-12-02 19:33:09 来源:中国专利 TAG:


1.本发明涉及超高速通用串行总线(usb 3.0)的控制技术,支持uasp(通用串行总线附加小型计算机系统接口协议,即usb attached scsi protocol)装置。


背景技术:

2.usb 3.0支持uasp装置,所采用的面向流协议(stream protocol,或称流式协议)允许装置进行批量传输,系统效能大幅提升。
3.然而,为了优化如此批量传输能力,装置端各端点(endpoint)的操作状态需要相当资源进行管理。如何耗费最少资源达到最高效能,为本技术领域重要课题。


技术实现要素:

4.本技术提供一种超高速通用串行总线控制技术。
5.根据本技术一种实施方式实现的一计算机系统包括一接口控制器。该一接口控制器具有一缓存空间存储一端点列表,并运行一逻辑,动态增删该端点列表。该接口控制器在接收到一第一流式端点发出的一未就绪数据包时,将该第一流式端点记录在该端点列表。该第一流式端点的一第一流式状态机随着该未就绪数据包的发出,切换到一闲置状态,等待进入一预备传输状态。该端点列表记录有该第一流式端点时,该接口控制器略过将该第一流式状态机自该闲置状态切换为一总管线状态。该接口控制器在该第一流式端点的所有目标传输完成后,将该第一流式端点自该端点列表删除。
6.一种实施方式中,该接口控制器是在接收到对准该第一流式端点的端点操作门铃时,检查该端点列表。在检查到该端点列表尚未记录该第一流式端点时,该接口控制器提供一通知封包给该第一流式端点,使该第一流式状态机进入该总管线状态,发出该未就绪数据包给该接口控制器。
7.一种实施方式中,对准该第一流式端点的多个端点操作门铃载有多个标签值,标示该第一流式端点的多段目标传输。该闲置状态的该第一流式状态机,根据该第一流式端点对应一目标标签值所发出的一就绪数据包,切换为该预备传输状态,以更切换为一传输状态,使该目标标签值所代表的一段目标传输在该第一流式端点与该接口控制器互动下完成,致使该第一流式状态机切换回该闲置状态。该接口控制器是在该第一流式端点告知该目标标签值所代表的该段目标传输完成时,判断与该第一流式端点是否有任何标签值的目标传输未完成。若都完成,该接口控制器将该第一流式端点自该端点列表删除。
8.一种实施方式中,该接口控制器更在该缓存空间存储一任务状态注记,为该第一流式端点提供对应多个标签值的第一组位。各位常态为一第一状态,在对应的标签值配置标示一段目标传输时,经该接口控制器切换为一第二状态,直至该段目标传输完成才切回该第一状态。该接口控制器根据都为该第一状态的第一组位,判定该第一流式端点的所有目标传输完成。
9.更有实施方式将本技术概念实现为超高速通用串行总线控制方法。
10.下文特举实施例,并配合附图,详细说明本发明内容。
附图说明
11.图1为方块图,根据本技术一种实施方式图解一计算机系统,支持uasp装置(usb 3.0装置);
12.图2为数据输入端点108的流式状态机;
13.图3以读取操作为例图解操作时序;
14.图4为流程图,根据本技术一种实施方式图解接口控制器118的一操作流程,其中涉及逻辑122的运作,说明该接口控制器118如何建立该端点列表120;且
15.图5为流程图,根据本技术一种实施方式图解接口控制器118的一操作流程,其中涉及逻辑122的运作,说明该接口控制器118如何应用该端点列表120,并动态删减该端点列表120内容。
16.【符号说明】
17.100:主机
18.102:uasp(通用串行总线附加小型计算机系统接口协议)装置
19.104:指令端点
20.106:数据输出端点
21.108:数据输入端点
22.110:状态端点
23.112:操作系统(os)
24.114:协议驱动器(uas driver)
25.116:接口驱动器(xhci driver)
26.118:接口控制器(xhci controller)
27.119:缓存空间
28.120:端点列表
29.122:动态增删列表的逻辑
30.124:任务状态注记
31.300:读取指令
32.302、304、306、308:封包组
33.disabled:除能状态
34.dp(cmd,ciu)、dp(data-in)、dp(stat,siu):指令、数据、状态封包
35.erdy、erdy(data-in)、erdy(stat):就绪数据包
36.idle:闲置状态
37.itr(stat)、itr(data-in)、otr(cmd,ciu)、otc(cmd)、itc(data-in)、itc(stat,siu):要求
38.inack(data-in,prime)、inack(stat,prime)、ack(cmd)、inack(data-in)、inack(stat)、ack(stat):通知封包
39.movedata:传输状态
40.nrdy、nrdy(data-in,prime)、nrdy(stat,prime):未就绪数据包
41.primepipe:总管线状态
42.s402

s410、s502

s510:步骤
43.startstream:预备传输状态
具体实施方式
44.以下叙述列举本发明的多种实施例。以下叙述介绍本发明的基本概念,且并非意图限制本发明内容。实际发明范围应依照权利要求书来界定。
45.图1为方块图,根据本技术一种实施方式图解一计算机系统,支持uasp装置(usb 3.0装置)。如图所示,一主机100可连接多个uasp装置。
46.以usap装置102为例,其中具有一指令端点(command endpoint)104、一数据输出端点(data-out endpoint)106、一数据输入端点(data-in endpoint)108、以及一状态端点(status endpoint)110。指令端点104供主机100实现指令的非流式批量输出(bulk-out and non-streaming)。不同于指令端点104的非流式设计,数据输出端点106供主机100实现写入数据的流式批量输出(bulk-out and streaming),而数据输入端点108、以及状态端点110供主机100实现读取数据、与装置状态的流式批量输入(bulk-in and streaming)。流式端点106、108、以及110大幅提升主机100读写uasp装置102的速度。
47.主机100运行一操作系统(operating system)112操作一协议驱动器(uas driver)114,使驱动一接口驱动器(xhci driver)116,继而驱动一接口控制器(xhci controller)118,控制所有uasp装置上的端点,使各端点的状态机运作。本技术特别介绍流式端点(包括数据输出端点106、数据输入端点108、以及一状态端点110)的控制;所介绍的接口控制器118可实现于芯片组(chipset)中。所述计算机系统解读为该接口控制器118、或包括接口控制器118的一芯片组、或包括该芯片组的该主机100、或整个图1架构。
48.各流式端点(数据输出端点106、数据输入端点108、以及状态端点110)设有特殊的流式状态机(stream state machine)。传统流式端点进行多段目标传输前,其流式状态机可能反复在总管线状态primepipe以及闲置状态idle间切换,耗时许久才回归闲置状态idle,等待进入一预备传输状态startstream。本技术接口控制器118在一缓存空间119管理一端点列表120,直接标注已启用的流式端点(一切入闲置状态idle即记载),使其流式状态机不再耗费时间在总管线状态primepipe以及闲置状态idle间切换。特别是,接口控制器118所运行的逻辑122具有动态增删列表的能力。逻辑122可由电路或/以及程序代码实现。逻辑122不只会将新启用的流式端点增添至端点列表120,还会将完成所有目标传输的流式端点自该端点列表120删除。如此一来,端点列表120尺寸适中,可以节省缓存空间。
49.端点列表120可存储在多个寄存器(registers)中。一种实施方式中,一流式端点是以4b数据注记在端点列表120,其中可包括装置编号slot#、以及装置上端点编号ep#。
50.一种实施方式中,接口控制器118更在缓存空间119管理一任务状态注记124。逻辑122可参考该任务状态注记124得知目标的流式端点是否完成其所有目标传输,得以自该端点列表120删除。任务状态注记124也可以寄存器存储。
51.图2为数据输入端点108的流式状态机,包括一除能状态disabled、一总管线状态primepipe、一闲置状态idle、,一预备传输状态startstream、以及一传输状态movedata。同采流式传输的数据输出端点106、以及状态端点110也有类似的流式状态机。
52.传统技术相应多段目标传输,会反复将流式状态机在总管线状态primepipe、以及闲置状态idle间切换。本技术以低硬件成本,成功降低流式状态机在总管线状态primepipe以及闲置状态idle间切换的机会。
53.根据本技术设计,流式端点发出一未就绪数据包nrdy后,此流式端点就被记录下来,以控管其流式状态机尽量维持在闲置状态idle,等待为各段目标传输所发出的就绪数据包erdy。就绪数据包erdy会使得流式状态机切入预备传输状态startstream与传输状态movedata,完成相应的一段目标传输。待此流式端点的所有目标传输完成,此流式端点的控管即结束,使得控管成本合理。
54.以下以读取操作为例进行说明。图3图解操作时序。
55.操作系统112要求读取uasp装置102时,会发出一读取指令(data-in transfer command)300,告知该协议驱动器114一读取地址、以及一读取尺寸。协议驱动器114会发出要求itr(stat)、itr(data-in)、以及otr(cmd,ciu)给接口驱动器116,使接口驱动器116驱动该接口控制器118。要求itr(stat)、以及itr(data-in)用来设定主机硬件,准备好接收uasp装置102响应的状态(如,感测信息单元siu)、以及读取数据。要求otr(cmd,ciu)是最后发送,用于传送命令信息单元(ciu)。
56.以下讨论数据输入端点108、以及状态端点110的流式状态机如何响应该读取指令300。
57.首先讨论数据输入端点108。根据要求itr(data-in),接口控制器118产生一通知封包inack(data-in,prime),使数据输入管线(data-in pipe)的流式状态机(图2)进入总管线状态primepipe,通知uasp装置102该主机100已经准备妥当,预备接收uasp装置102响应的读取数据。响应该通知封包inack(data-in,prime),uasp装置102是响应一未就绪数据包nrdy(data-in,prime),使流式状态机从总管线状态primepipe切入闲置状态idle,以方便切入预备传输状态startstream。参阅图1,接口控制器118便是在此时,以逻辑122,将数据输入端点108增添至端点列表120,表示数据输入端点108的流式状态机已作过总管线状态primepipe、再闲置状态idle的设定。
58.此段讨论状态端点110。根据要求itr(stat),接口控制器118产生一通知封包inack(stat,prime),使状态管线(status pipe)的流式状态机(类似图2)进入总管线状态primepipe,通知uasp装置102该主机100已经准备妥当,预备接收uasp装置102响应的状态(如,感测信息单元siu)。响应该通知封包inack(stat,prime),uasp装置102是响应一未就绪数据包nrdy(stat,prime),使流式状态机从总管线状态primepipe切入闲置状态idle,方便切入预备传输状态startstream。参阅图1,接口控制器118便是在此时,以逻辑122,将状态端点110增添至端点列表120,表示状态端点110的流式状态机已作过总管线状态primepipe、再闲置状态idle的设定。
59.数据输入管线、以及状态管线的流式状态机都确实在闲置状态idle后,根据要求otr(cmd,ciu),接口控制器118产生一指令封包dp(cmd,ciu),做命令信息单元ciu传输。uasp装置102收到该指令封包dp(cmd,ciu)后,响应一通知封包ack(cmd),表示成功接收命令信息单元ciu。接口控制器118以要求otc(cmd)一路回报接口驱动器116以及协议驱动器114。由于接口控制器118非流式端点,故无需填入端点列表120。
60.特别是,读取指令300要求读取的数据可分为数段读取。例如,读取指令300要求的
10k读取数据,可分10段各读出1k。
61.传统设计中,用于数据输入端点108以及状态端点110初始设定的封包组302将重复10次,接着,指令传输的封包组304也重复10次。不同段读取的封包组302/304以不同标签值(tag values)区别。一种实施方式是令封包带有一流式编码(sid),其值设定为对应的标签值。特别是,关于流式端点,重复执行的封包组302将令数据输入管线、以及状态管线的流式状态机频繁在总管线状态primepipe以及闲置状态idle间切换。
62.然而,应用本技术技术,封包组302第一次进行,端点列表120就会标有数据输入端点108以及状态端点110,表示数据输入端点108以及状态端点110的流式状态机已作过总管线状态primepipe、再闲置状态idle的设定。接口控制器118藉由查询该端点列表120,可避免再次将数据输入端点108以及状态端点110的流式状态机从闲置状态idle切换成总管线状态primepipe。因此,本技术封包组302不会重复进行,其封包也无需载有标签值。唯非流式端点通信的封包组304重复进行。系统效能大幅提升。
63.经前述步骤,各端点完成读取数据的前置步骤。以下开始进行读取数据的传输。
64.uasp装置102产生一就绪数据包erdy(data_in),通知接口控制器118,该uasp装置102已准备好传送某标签值的读取数据。根据就绪数据包erdy(data_in),数据输入管线的流式状态机自闲置状态idle切入预备传输状态startstream。
65.相应就绪数据包erdy(data_in),接口控制器118传送一通知封包inack(data-in)给uasp装置102。根据通知封包inack(data-in),数据输入管线的流式状态机自预备传输状态startstream切入传输状态movedata,开始传送读取数据,uasp装置102发出数据封包dp(data-in)。
66.相应数据封包dp(data-in),接口控制器118传送一通知封包inack(data-in)给uasp装置102,表示成功接收到读取数据的封包。封包dp(data-in)、inack(data-in)多对互动后,其标签值代表的该段读取数据传输完成,接口控制器118以要求itc(data-in),一路回报接口驱动器116以及协议驱动器114。数据输入管线的流式状态机回到闲置状态idle。
67.以前述10次各1k分段读取为例,封包组306会重复10次,各自对应一标签值。各封包是以流式编码(sid)标示标签值。
68.特别是,所有分段的读取数据传送完后(重复封包组306后),接口控制器118会以逻辑122将数据输入端点108自端点列表120删除,使缓存空间119利用最佳化。一种实施方式中,任务状态注记124有32位内容是为数据输入端点108提供,分别对应一标签值的读取数据的传输。各位常态为1。0值代表该标签值读取数据尚未完成传输。若此32位皆为1,则接口控制器118认定数据输入端点108所有分段的读取数据传送完毕,将数据输入端点108自端点列表120删除。
69.所有分段的读取数据传输完毕后,uasp装置102发出就绪数据包erdy(stat),通知接口控制器118,该uasp装置102已准备好通过状态管线传送感测信息单元siu。就绪数据包erdy(stat)也有标示标签值。根据该就绪数据包erdy(stat),状态管线的流式状态机自闲置状态idle切入预备传输状态startstream。
70.相应该就绪数据包erdy(stat),接口控制器118传送一通知封包inack(stat)给uasp装置102。根据通知封包inack(stat),状态管线的流式状态机自预备传输状态startstream切入传输状态movedata,产生状态封包dp(stat,siu)传送感测信息单元siu。
相应状态封包dp(stat,siu),接口控制器118产生通知封包ack(stat),表示成功接收感测信息单元siu。状态管线的流式状态机回到闲置状态idle。
71.以前述10次各段1k读取为例,封包组308会重复10次,各自对应一标签值。各封包是以流式编码(sid)标示标签值。
72.特别是,所有分段读取的装置状态传送完后(重复封包组308后),接口控制器118会以逻辑122将状态端点110自端点列表120删除,使缓存空间119利用最佳化。一种实施方式中,任务状态注记124有32位内容是为状态端点110提供,分别对应一标签值的状态传输。各位常态为1。0值代表该标签值状态尚未完成传输。若此32位皆为1,则接口控制器118认定状态端点110所有分段的状态传输完成,将状态端点110自端点列表120删除。
73.操作系统112以一写入指令(data-out transfer command)发起的写入操作的时序,类似图3的读取操作时序。同样以小尺寸缓存空间119,实现流式端点(包括数据输出端点106以及状态端点110)的高效运作。
74.以上流式端点操作概念可应用在各式各样流式端点,不限定于数据输出端点106、数据输入端点108、状态端点110。
75.图4为流程图,根据本技术一种实施方式图解接口控制器118的一操作流程,其中涉及逻辑122的运作,说明该接口控制器118如何建立该端点列表120。
76.步骤s402,接口控制器118收到端点操作门铃(ep doorbell,itr、或otr),其中包括装置编号slot#、装置上端点编号ep#、以及标签值stream#(#代表编号)。一种实施方式中,接口控制器118可将任务状态注记124里,对应装置编号slot#、装置上端点编号ep#的寄存器,其中对应标签值stream#的位设0,代表待完成的一段目标传输。
77.步骤s404,根据装置编号slot#、以及装置上端点编号ep#,接口控制器118查询端点列表120,判断此流式端点是否已启用(已作过总管线状态primepipe、闲置状态idle设定)。
78.若目前要求操作的流式端点尚未启用,并未列在端点列表120,接口控制器118循步骤s406发出一通知封包,使该流式端点的流式状态机切换到总管线状态primepipe,再循步骤s408,接收该流式端点响应的未就绪数据包nrdy。此时,该流式状态机自总管线状态primepipe切换成闲置状态idle。接口控制器118循步骤s410将此流式端点的信息(包括装置编号slot#、以及装置上端点编号ep#)载入该端点列表120,记录为已启用端点。流程结束。
79.反之,若目前要求操作的流式端点早已启用,已列在端点列表120,接口控制器118跳过步骤s406以及s408,该流式状态机不会再作总管线状态primepipe、闲置状态idle切换。流式状态机原本早已处在闲置状态idle。
80.图5为流程图,根据本技术一种实施方式图解接口控制器118的一操作流程,其中涉及逻辑122的运作,说明该接口控制器118如何应用该端点列表120,并动态删减该端点列表120内容。
81.步骤s502,接口控制器118接收到一流式端点(由装置编号slot#、以及装置上端点编号ep#标注)传来的一就绪数据包erdy,其中带有一标签值stream#。该流式状态机随着该就绪数据包erdy进入该预备传输状态startstream、以及该传输状态movedata,进行该标签值stream#所标示的一段目标传输。此时,接口控制器118以步骤s504自该流式端点接收封
包dp。步骤s506,接口控制器118获知该流式端点完成标签值stream#的目标传输,将任务状态注记124中,对应该流式端点的寄存器,其中对应标签值stream#的位设1。步骤s508,接口控制器118判断该寄存器是否全重置为预设值1。若是,表示该流式端点所有目标传输都完成,接口控制器118循步骤s510将该流式端点自该端点列表120删除。若否,流程不调整该端点列表120即结束。
82.经整理,本技术令完成所有目标传输的流式端点,得以自端点列表120删除。如此一来,端点列表120使用的寄存器数量可以大幅减少。以uasp装置102为例,数据输出端点106与数据输入端点108不会同时启用。端点列表120至多只需要为uasp装置102提供两个条目:标示数据输出端点106与状态端点110;或者,标示数据输入端点108与状态端点110。相较于为三个流式端点(数据输出端点106、数据输入端点108、状态端点110)各备妥寄存器记录目标传输的传输进度,本技术动态增、删该端点列表120的技术,更是节省缓存空间119。
83.另外,以支持32个uasp装置的计算机系统为例,通常不会同时使用32个uasp装置。例如,大部分应用只会使用到15个uasp装置。端点列表120设计上可以应付20个uasp装置为目标,即具有20*2*4b(160b)存储能力即可。相较于为所有装置的所有流式端点备妥32*3*4b(=384b)空间,160b的端点列表120在缓存空间利用上更好。
84.以下表格1举例说明端点列表120的增删。
85.[0086][0087]
表格1
[0088]
步骤3,装置0x0e上、编号0x04流式端点(数据输出端点)添入该端点列表120,为(e,4);除了代表该流式端点(e,4)已为标签值0x02的传输作好准备(idle状态),也代表该流式端点(e,4)有能力应付标签值0x04(步骤7)、以及0x09(步骤12)的传输要求。步骤7以及步骤12的要求,都没有再触发流式状态机的总管线状态primepipe、闲置状态idle切换。
[0089]
步骤6,装置0x0e上编号0x07的流式端点(状态端点)添入该端点列表120,为(e,7);除了代表流式端点(e,7)已为标签值0x02的传输作好准备(idle状态),也代表该流式端点(e,7)有能力应付标签值0x04(步骤8)、以及0x09(步骤14)的传输要求。步骤8以及步骤14的要求,都没有再触发流式状态机的总管线状态primepipe、闲置状态idle切换。
[0090]
步骤20,装置0x0c上编号0x03的流式端点(数据输入端点)添入该端点列表120,为(c,3);除了代表该流式端点(c,3)已为标签值0x02的传输作好准备(idle状态),也代表该
流式端点(c,3)有能力应付标签值0x05(步骤24)、以及0x09(步骤28)的传输要求。步骤24以及步骤28的要求,都没有再触发流式状态机的总管线状态primepipe、闲置状态idle切换。
[0091]
步骤23,装置0x0c上编号0x07的流式端点(状态端点)添入该端点列表120,为(c,7);除了代表该流式端点(c,7)已为标签值0x02的传输作好准备(idle状态),也代表该流式端点(c,7)有能力应付标签值0x05(步骤26)、以及0x09(步骤29)的传输要求。步骤26以及步骤29的要求,都没有再触发流式状态机的总管线状态primepipe、闲置状态idle切换。
[0092]
特别是,步骤25,随着标签值0x09的数据输出传输完成,装置0x0e上编号0x04的数据输出端点完成所有任务(标签值0x02、0x04、以及0x09所标示的三段数据输出传输都完成),记录(e,4)自端点列表120删除。
[0093]
步骤27,随着标签值0x09的状态传输完成,装置0x0e上编号0x07的状态端点完成所有任务(标签值0x02、0x04、以及0x09所标示的三段状态传输都完成),记录(e,7)自端点列表120删除。
[0094]
步骤37,随着标签值0x09的数据输入传输完成,装置0x0c上编号0x03的数据输入端点完成所有任务(标签值0x02、0x05、以及0x09所标示的三段数据输入传输都完成),记录(c,3)自端点列表120删除。
[0095]
步骤38,随着标签值0x09的状态传输完成,装置0x0c上编号0x07的状态端点完成所有任务(标签值0x02、0x05、以及0x09所标示的三段状态传输都完成),记录(c,7)自端点列表120删除。
[0096]
表格1显示端点列表120的动态增删。本技术接口控制器118明显优化端点列表120所占用的缓存空间119。
[0097]
本技术为超高速通用串行总线(usb 3.0)提出高效的接口控制器118。
[0098]
以上概念更可实现为超高速通用串行总线(usb 3.0)控制方法,包括:在一缓存空间119存储一端点列表120,并运行一逻辑122,动态增删该端点列表120;相应一第一流式端点发出的一未就绪数据包nrdy,将该第一流式端点记录在该端点列表120,其中,该第一流式端点的一第一流式状态机随着该未就绪数据包nrdy的发出,切换到一闲置状态idle,等待进入一预备传输状态startstream;在该端点列表120记录有该第一流式端点时,略过将该第一流式状态机自该闲置状态idle切换为一总管线状态pipeprime;且在该第一流式端点的所有目标传输完成后,将该第一流式端点自该端点列表120删除。
[0099]
一种实施方式中,所述控制方法还包括:相应对准该第一流式端点的端点操作门铃,检查该端点列表120;且在检查到该端点列表120尚未记录该第一流式端点时,提供一通知封包inack给该第一流式端点,使该第一流式状态机进入该总管线状态primepipe,发出该未就绪数据包nrdy。该第一流式状态机切换到该闲置状态idle,且该第一流式端点增添入该端点列表120。
[0100]
一种实施方式中,对准该第一流式端点的多个端点操作门铃载有多个标签值,标示该第一流式端点的多段目标传输。该闲置状态idle的该第一流式状态机,根据该第一流式端点对应一目标标签值所发出的一就绪数据包erdy,切换为该预备传输状态startstream,以更切换为一传输状态movedata,完成该目标标签值所代表的一段目标传输,致使该第一流式状态机切换回该闲置状态idle。所述控制方法更在该第一流式端点完成该目标标签值所代表的该段目标传输时,判断与该第一流式端点是否有任何标签值的目
标传输未完成;若都完成,将该第一流式端点自该端点列表120删除。
[0101]
虽然本发明已以优选实施例揭示如上,然其并非用以限定本发明,本领域技术人员在不脱离本发明的精神和范围内,当可做些许更动与润饰,因此本发明的保护范围以权利要求书界定为准。
再多了解一些

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

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

相关文献