调整线程优先级以改进点到点(p2p)器件之间的吞吐量的制作方法

xiaoxiao2020-10-23  7

调整线程优先级以改进点到点(p2p)器件之间的吞吐量的制作方法
【专利说明】调整线程优先级以改进点到点(P2P)器件之间的吞吐量
[0001]相关申请的交叉引用
[0002]本公开按照35 U.S.C.§ 119(e)要求2012年4月23日提交的、名称为“Algorithmfor Self-Adaptively Adjusting Thread Pr1rity to Improve Throughput between P2PDevices”的美国临时申请第61/636,899号的优先权,其公开内容通过引用将其整体结合于此。
技术领域
[0003]本公开涉及调整线程优先级,并且具体地涉及调整线程优先级以改进点到点(P2P)器件之间的吞吐量。
【背景技术】
[0004]随着技术的快速发展,数据传输速度大于100Mbps的器件可以在现代处理器上实现。针对高速器件,线程调度可以影响传输吞吐量。在具有轻工作负载的系统中,线程可以被调度使得线程以最小每30 μ s执行。然而,在具有较高工作负载的系统中,线程可能需要在执行之前等待100 μ S或更长时间。最低优先级线程甚至可能需要等待无限期的时间量。为了最小化等待时间,线程可以被指派更高优先级。然而,被指派高固定优先级的线程可能优先占有并使用系统资源甚至在该线程空闲时,例如,当线程没有响应时间先决事件时。
[0005]例如,系统可以包括高速接口(HSI),该高速接口支持速度大于100Mbps的数据传输。该HSI可以在其被分配系统资源的时间段期间(例如,时间片)传送1500字节传输控制协议/网际协议(TCP/IP)的1250字节。如果HSI需要为其下一个时间片等待多于100 μ s,则该等待时间可能负面影响该HSI的性能。为了最小化等待时间,与该HSI相关联的线程可以被指派更高优先级。然而,向与该HSI相关联的线程指派更高的优先级可能使得HSI优先占有并使用系统资源甚至在该HSI没有执行数据传输时。

【发明内容】

[0006]本发明描述了与调整线程优先级以改进点到点(P2P)器件之间吞吐量的系统和技术。通常,在一个方面,处理器被配置为接收当前未决分组编号,所述当前未决分组编号表示当前保持待在两个器件之间传送的数据分组的数目,基于所述当前未决分组编号、先前未决分组编号和优先级未决分组编号来确定是否调整线程的优先级,以及基于确定是否调整线程的优先级来调整或维持所述线程的所述优先级。所述线程待由所述处理器执行以执行所述两个器件之间所述数据分组的传送,所述先前未决分组编号表示先前保持待在所述两个器件之间传送的数据分组的数目,以及所述优先级未决分组编号对应于所述线程的当前优先级。
[0007]所述系统和技术可以被实施以便实现以下优势中的一个或多个。当等待在器件之间传送的数据量增加时,器件之间的传输吞吐量可以通过提高数据传送任务的优先级使得数据可以以更快速率传送来改进。当等待传送的数据量减少时,系统工作负载可以通过降低数据传送任务的优先级使得其他任务可以被调度同时仍满足器件的最小数据传送速率来平衡。
[0008]所述系统和技术可以在电路、计算机硬件、固件、软件或其组合中实现,诸如本说明书中公开的结构装置以及其结构等同物。这可以包括体现有程序的至少一个计算机可读介质,所述程序可操作用于使得一个或多个数据处理装置执行所述操作。因此,程序实现方式可以从所公开的方法、系统或装置中实现,并且装置实现方式可以从所公开的系统、计算机可读介质或方法中实现。类似地,方法实现方式可以从所公开的系统、计算机可读介质或装置中实现,以及系统实现方式可以从所公开的方法、计算机可读介质或装置中实现。
[0009]一个或多个实现方式的细节在附图和下文描述中进行了阐述。其他特征、对象和优势可以从描述和附图以及权利要求中变得容易理解。
【附图说明】
[0010]图1是示出了其中线程优先级可以被调整以改进P2P器件之间吞吐量的系统的示例的框图。
[0011]图2是示出了在P2P器件之间交换以传送数据的信号的示例的信号图。
[0012]图3是示出了由执行发射器线程的处理器执行的操作300的示例的流程图。
[0013]图4是示出了由执行接收器线程的处理器执行的操作的示例的流程图。
[0014]图5是示出了由处理器执行以调整或维持执行数据传送的线程的优先级的线程优先级算法的操作的示例的流程图。
[0015]图6是示出了由处理器执行以升级线程优先级的操作的示例的流程图。
[0016]图7是示出了由处理器执行以降级线程优先级的操作的示例的流程图。
[0017]图8a、图Sb和图Sc示出了图形描绘用于升级、降级或维持线程优先级的条件的示例的图表。
[0018]图9是示出了在调整线程优先级时由处理器执行的操作的示例的流程图。
[0019]图10是示出了针对以字节为单位的不同分组大小的以Mbps为单位的发射数据吞吐量速率的示例的曲线图。
[0020]图11是示出了针对以字节为单位的不同分组大小的以Mbps为单位的接收数据吞吐量速率的示例的曲线图。
【具体实施方式】
[0021]下面结合包括高速接口(HSI)的系统的示例来论述本公开的各实施方式,通过该高速接口数据可以以高速度(例如,10Mbps或更多)在点到点(P2P)器件之间传送。此类系统的示例可以包括路由器、存储器和其他嵌入式系统。本公开中描述的系统和技术通常可应用于其中可用于调整线程优先级以改进数据吞吐量并平衡系统工作负载的任何系统。因此,图1对应于能够调整线程优先级的系统的某些实现方式,并且其他系统实现方式可以包括与图1所示组件不同的组件。
[0022]图1是示出了其中线程优先级可以被调整以改进P2P器件102与104之间吞吐量的系统的示例的框图。P2P器件102与104例如可以是应用处理器和存储器。器件102包括处理内核或控制器110以及HSI 106,通过该HSI 106器件102以高速度发射和接收数据。器件104包括处理内核或控制器112以及HSI 108,通过该HSI 108器件104以高速度发射和接收数据。
[0023]图2是示出了在P2P器件之间交换以传送数据的信号的示例的信号图。器件A例如可以是应用处理器。器件B例如可以是存储器控制器。器件A通过器件A与器件B之间的控制通道向器件B发送打开连接请求信号OPEN_CONN。打开连接请求可以是事件、中断或者P2P器件之间的其他适当的进程间通信(IPC)协议信号。响应于接收OPEN_CONN信号,器件B通过控制通道向器件A发送确认信号ACK。器件B可以分配、保留和配置资源(例如,存储器和动态存储器访问(DMA)通道)用于数据传输。器件B通过控制通道向器件A发送连接就绪信号CONN_READY。连接就绪信号可以是事件、中断或者P2P器件之间的其他适当的IPC协议信号。响应于接收CONN_READY信号,器件A通过数据通道向器件B以协议数据单元(rou)发送数据,例如,数据分组。在接收数据分组之后,器件B向器件A发送连接关闭信号CONN_CLOSED。类似信号在器件A与器件B之间交换用于从器件B向器件A传输数据。
[0024]图3是示出了由执行发射器(TX)线程的处理器执行的操作300的示例的流程图。操作300可以由程序代码、硬件或处理器中实现的程序代码和硬件的组合来执行。
[00 25]在302,TX线程空闲,并且没有数据被发射至对等器件。在304,TX线程执行线程优先级算法,其稍后将在本公开中详细论述。在306,TX线程确定任何未决分组(也被称作挂起分组)是否保持待被发射至对等器件。如果没有未决分组剩余,则在308TX线程休眠X毫秒,期间该TX线程空闲。在某些实现方式中,TX线程休眠的微秒X的数目可以根据不同软件、硬件或处理器上软件和硬件配置的组合由用户定义。在某些实现方式中,TX线程休眠的微秒X的数目可以基于影响系统性能的因素,诸如敏感度和功耗。
[0026]如果未决分组保持待发射,则在310TX线程发起数据传送。例如,TX线程可以通过向对等器件发送OPEN_CONN信号来发起数据传送。
[0027]在312,TX线程确定数据是否可以被发送。如果TX线程确定数据不能被发送,则在314TX线程执行错误处理例程。例如,TX线程可以确定数据可以在接收ACK信号和CONN_READY信号之后被发送。如果ACK信号或CONN_READY信号在对应超时期间之后没有接收到,则TX线程执行错误处理例程。
[0028]在确定数据可以被发送之后,在318TX线程向对等器件发送数据单元,例如,数据分组。TX线程可以在一个或多个时间片上执行直到数据分组的所有数据被发射。
[0029]在发射数据分组之后,在320TX线程确定数据是否被成功传送。如果TX线程确定数据没有被成功传送,则在314TX线程执行错误处理例程。例如,TX线程可以通过确定是否已经接收到CONN_CLOSED信号来确定数据是否被成功传送。如果CONN_CLOSED信号在超时期间之后没有接收到,则TX线程执行错误处理例程。在确定数据被成功传送之后,在304TX线程执行线程优先级算法。
[0030]图4是示出了由执行接收器(RX)线程的处理器执行的操作400的示例的流程图。操作400可以由程序代码、硬件或处理器中实现的程序代码和硬件的组合来执行。
[0031]在402,RX线程空闲,并且没有数据从对等器件接收。在404,RX线程确定是否已经接收到数据传送请求。该数据传送请求可以是事件、中断或者P2P器件之间的其他适当的进程间通信(IPC)协议信号。例如,RX线程可以通过确定是否已经接收到OPEN_CONN信号来确定是否已经接收到数据传送请求。如果数据传送请求还未接收到,则在402RX线程保持空闲。在接收数据传送请求之后,在406RX线程执行线程优先级算法,其稍后将在本公开中详细论述。
[0032]在408,RX线程可以可选地向对等器件发送确认信号(例如,ACK信号)以确认收到数据传送请求。在410,RX线程可以准备接收数据。例如,RX线程可以分配存储器以及保留并配置动态存储器访问(DMA)通道用于接收数据。在412,RX线程向对等器件发送连接就绪信号,例如,CONN_READY信号。该连接就绪信号可以是事件、中断或者P2P器件之间的其他适当的IPC协议信号。在414,RX线程在数据接收时空闲。
[0033]在416,RX线程确定数据是否被成功传送。例如,RX线程可以通过确定指示数据传送已经完成的信号(例如,RX_DONE中断)已经被接收来确定数据是否被成功传送。如果RX线程确定数据没有被成功传送,则在418RX线程执行错误处理例程。在确定数据被成功传送之后,在420RX线程向对等器件发送连接关闭信号,例如,CONN_CLOSED信号。在422,RX线程向待由应用读取的未决数据列表添加所接收的数据,并且通知应用读取该数据。
[0034]图5是示出了由处理器执行以调整或维持执行数据传送的线程的优先级的线程优先级算法的操作500的示例的流程图。线程优先级算法的参数包括线程优先级阵列、优先级未决分组编号阵列、索引、前向步长Pre_f_step、后向步长Pre_b_step、先前未决分组编号Pre_p_num和当前未决分组编号Curr_p_num。线程优先级阵列具有大小为N并且值为Pri [] = {pri_min,pri_l,".Prijiiaxl。优先级未决分组编号阵列具有大小为N并且值为P_num[] = {0,1,"mnuiiaXl。索引表示线程优先级阵列和未决分组编号阵列的索引。前向步长Pre_f_step表示以前向(升级)方向应用于线程优先级的调整量。后向步长Pre_b_st印表示以后向(降级)方向应用于线程优先级的调整量。先前未决分组编号Pre_p_num表示先前保持待在点对点器件之间传送的数据分组的数目。当前未决分组编号Curr_P_num表示当前保持待在点对点器件之间传送的数据分组的数目。当线程优先级算法针对线程首次初始化时,索引、Pre_p_num、Pre_f_step和Pre_b_step被设置为O。当前未决分组编号Curr_p_num是对线程优先级算法的输入参数。
[0035]在502,处理器确定当前未决分组编号Curr_p_num是否大于先前未决分组编号Pre_p_num,并且确定当前未决分组编号Curr_p_num是否大于索引P_num[Index]指定的优先级未决分组编号阵列的值。如果Curr_p_num大于Pre_p_num与P_num[Index]两者,贝Ij在504处理器执行操作以升级线程优先级。
[0036]图6是示出了由处理器执行以升级线程优先级的操作600的示例的流程图。在602,处理器将后向步长Pre_b_step设置为O (Pre_b_step = O)以指示优先级正被升级。在604,处理器确定前向步长Pre_f_step是否大于O。如果Pre_f_step不大于0,则线程先前没有被升级,并且在606Pre_f_step被设置为I (Pre_f_step = I)。如果Pre_f_step大于0,则线程先前被升级,并且在608Pre_f_step被翻倍(Pre_f_step = Pre_f_step*2)。在610,处理器通过 Pre_f_step 增加索引(Index = Index+Pre_f_step) ο
[0037]返回图5,如果 Curr_p_num 不大于 Pre_p_num 与 P_num[Index]两者,则在 508 处理器确定Curr_p_num是否小于Pre_p_num以及确定Curr_p_num是否小于P_num[Index]。如果Curr_p_num小于Pre_p_num与P_num[Index]两者,则在510处理器执行操作以降级线程优先级。
[0038]图7是示出了由处理器执行以降级线程优先级的操作700的示例的流程图。在702,处理器将前向步长Pre_f_step设置为O (Pre_f_step = O)以指示优先级正被降级。在704,处理器确定后向步长Pre_b_step是否大于O。如果Pre_b_step不大于0,则线程先前没有被降级,并且在706Pre_b_step被设置为I (Pre_b_step = I)。如果Pre_b_step大于0,则线程先前被降级,并且在708Pre_b_step被翻倍(Pre_b_step = Pre_b_step*2)。在710,处理器通过 Pre_b_step 增加索引(Index = Index+Pre_f_step) ο
[0039]返回图5,在512,在升级或降级线程优先级之后,处理器确定索引是否指定线程优先级阵列与优先级未决分组编号阵列的有效索引。如果索引小于O (index < O),则处理器将索引设置为O (index = O)。如果索引大于 N-1 (index > N_l),则处理器将索引设置为N-1 (index = N-1)。在 514,处理器将 Pre_p_num 设置为 Curr_p_num (Pre_p_num = Curr_p_num)。在516,处理器将线程优先级设置为Pri [index]。
[0040]如果处理器确定Curr_p_num不小于或大于Pre_p_num与P_num[Index]两者,则在518处理器维持线程优先级。
[0041]图8示出了图形描绘用于升级(图8a)、降级(图Sb)或维持(图Sc)线程优先级的条件的示例的图表。在图8中,优先级未决分组编号随着索引增加而从O增加到N-1。如图8a中所示,当Curr_p_num > P_num[m+1] > Pre_p_num时,线程优先级可以通过将索引从水平(或级)m升至更高水平(或级)来升级。如图8b中所示,当Curr_p_num < P_num[m]<Pre_p_num时,线程优先级可以通过将索引从水平m降至更低水平来降级。如图Sc中所不,当 P_num[m] < Curr_p_num P_num [m+1]并且 P_num [m] < Pre_p_num P_num [m+1]时,线程优先级可以通过将索引保持在水平m来维持。
[0042]图9是示出了在调整线程优先级时由处理器执行的操作900的示例的流程图。处理器可以基于当前调整与先前调整一致或相反来确定优先级步长(例如,前向步长Pre_f_step或后向步长Pre_b_st印)。在当前调整与先前调整是相同方向(前向或后向)时,当前调整与先前调整一致。在当前调整与先前调整是相反方向(例如,在先前升高线程优先级之后降低该线程优先级)时,当前调整与先前调整相反。
[0043]在902,处理器将Curr_p_num与Pre_p_num进行比较。基于比较,在904处理器确定当前调整是否与先前调整一致。例如,如果Curr_p_num与Pre_p_num的比较指示Curr_p_num在先前增加之后增加了,则当前调整与先前调整一致。类似地,如果Curr_p_num与Pre_p_num的比较指示Curr_p_num在先前减少之后减少了,则当前调整与先前调整一致。
[0044]如果当前调整与先前调整一致,则在906处理器可以一致步长(例如,前向步长Pre_f_step或后向步长Pre_b_step)。处理器可以通过重复调整或翻倍该一致步长(例如,如图6的608和图7的708中所示)。返回图9,如果当前调整与先前调整相反,则如908中所示处理器将相反步长设置为O (例如,如图6的602和图7的702中所示)并且将一致步长设置为I (例如,如图6的606和图7的706中所示)。
[0045]线程优先级阵列和优先级未决分组编号阵列可以根据不同软件、硬件或处理器上软件和硬件配置的组合由用户定义。前向步长Pre_f_step和后向步长Pre_b_step可以是用户定义的并且可以是不同于上述值的其他适当值。
[0046]针对TX线程,当前未决分组编号Curr_p_num可以表示当前保持待在点对点器件之间传送的未决分组的数目。不同的应用或用户场景可以具有针对数据传输速率的不同要求。例如,当存储器可以写入数据的数据速率快于HSI可以传送数据的数据速率时,当前未决分组编号可以更高。在数据分组被发送之前,TX线程检测当前未决分组编号并且确定是否调整优先级。如果未决分组编号正在增加,则TX线程的优先级被升级使得该TX线程可以被更快调度,由此以更高数据速率发送数据。如果未决分组编号正在减少,则TX线程的优先级被降级使得该TX线程可以被更慢调度同时仍满足任何数据速率要求,由此平衡系统工作负载。
[0047]针对RX线程,当前未决分组编号Curr_p_num可以表示当前保持待由执行请求数据的应用的处理器读取的未决分组的数目。在接收数据传送请求之后,RX线程确定当前未决分组编号并且确定是否调整优先级。如果未决分组编号正在增加,则RX线程的优先级被升级使得该RX线程可以被更快调度,由此以更高数据速率接收数据。如果未决分组编号正在减少,则RX线程的优先级被降级使得该RX线程可以被更慢调度同时仍满足任何数据速率要求,由此平衡系统工作负载。
[0048]图10是示出了针对以字节为单位的不同分组大小的以Mbps为单位的发射数据吞吐量速率的示例的曲线图。线1010表示在数据传输期间线程优先级算法被利用时针对不同分组大小的发射数据吞吐量速率。线1020表示在数据传输期间线程优先级算法未被利用时针对不同分组大小的发射数据吞吐量速率。
[0049]图11是示出了针对以字节为单位的不同分组大小的以Mbps为单位的接收数据吞吐量速率的示例的曲线图。线1110表示在数据接收期间线程优先级算法被利用时针对不同分组大小的接收数据吞吐量速率。线1120表示在数据接收期间线程优先级算法未被利用时针对不同分组大小的接收数据吞吐量速率。
[0050]上文已经详细描述了若干实现方式,并且可以进行各种修改。所公开的主题(包括本说明书中描述的函数运算)可以在电路、计算机硬件、固件、软件或其组合中实现,诸如本说明书中公开的结构装置以及其结构等同物,包括片上系统(SoC)实现方式。
[0051]虽然本说明书包含许多具体的实现细节,但是这些不应被解释为对可以要求保护的或任何公开的范围的限制,而是被解释为可以特定于具体公开的【具体实施方式】的特征的描述。在本说明书中在各个实施方式的上下文中描述的某些特征也可以在单个实施方式中以组合实现。反之,在单个实施方式的上下文中描述的各种特征也可以单独在多个实施方式中或任何适当的子组合中实现。此外,虽然特征以上可能被描述为以特定组合进行动作,并且甚至最初要求如此,但是在一些情况下,要求保护的组合中的一个或多个特征可以从该组合中消除,并且所要求保护的组合可以针对子组合或子组合的变体。
[0052]类似地,虽然在附图中以具体顺序描绘了操作,但是这不应该被理解为需要以所示的具体顺序或者以连续顺序执行这样的操作,或者需要执行所有图示的操作以实现期望的结果。在特定情况下,多任务和并行处理可能是有利的。此外,上述实施方式中的各种系统组件的分离不应被理解为在所有的实施方式中需要这样的分离。其他实现方式落入以下权利要求书的范围。
【主权项】
1.一种方法,包括: 由处理器接收当前未决分组编号,所述当前未决分组编号表示当前保持待在两个器件之间传送的数据分组的数目;由所述处理器基于所述当前未决分组编号、先前未决分组编号和优先级未决分组编号来确定是否调整线程的优先级,其中所述线程待由所述处理器执行以执行在所述两个器件之间所述数据分组的传送,所述先前未决分组编号表示先前保持待在所述两个器件之间传送的数据分组的数目,以及所述优先级未决分组编号对应于所述线程的当前优先级;以及由所述处理器基于所述确定的结果来调整或维持所述线程的所述优先级。2.根据权利要求1所述的方法,其中确定是否调整所述线程的所述优先级包括: 将所述当前未决分组编号与所述先前未决分组编号进行比较; 将所述当前未决分组编号与所述优先级未决分组编号进行比较;以及当所述当前未决分组编号大于或小于所述先前未决分组编号,并且所述当前未决分组编号大于或小于所述优先级未决分组编号时,确定调整所述线程的所述优先级。3.根据权利要求1所述的方法,其中调整或维持所述线程的所述优先级包括: 当所述当前未决分组编号大于所 述先前未决分组编号并且所述当前未决分组编号大于所述优先级未决分组编号时,升级所述线程的所述优先级; 当所述当前未决分组编号小于所述先前未决分组编号并且所述当前未决分组编号小于所述优先级未决分组编号时,降级所述线程的所述优先级;以及否则维持所述线程的所述优先级。4.根据权利要求1所述的方法,其中所述两个器件是点到点(P2P)器件,所述优先级未决分组编号是在未决分组编号阵列中在与所述线程相关联的索引处存储的值,并且在所述未决分组编号阵列中存储的值根据所述两个P2P器件中的一个P2P器件的不同配置被定义。5.根据权利要求4所述的方法,其中调整所述线程的所述优先级包括: 调整与所述线程相关联的所述索引;以及 将所述线程的所述优先级设置为在线程优先级阵列中在与所述线程相关联的所述索引处存储的值,在所述线程优先级阵列中存储的值根据所述两个P2P器件中的所述一个P2P器件的不同配置被定义。6.根据权利要求1所述的方法,其中调整所述线程的所述优先级包括: 基于表示用于应用于所述线程的所述优先级的调整量的步长来调整所述线程的所述优先级,所述步长是用户定义的。7.根据权利要求6所述的方法,进一步包括: 确定所述线程的所述优先级的所述调整与所述线程的所述优先级的先前调整一致;以及 基于所述步长重复所述线程的所述优先级的所述调整。8.一种装置,包括: 高速接口 ;以及 与所述高速接口耦合的处理器,所述处理器被配置为: 接收当前未决分组编号,所述当前未决分组编号表示当前保持待在两个器件之间传送的数据分组的数目; 基于所述当前未决分组编号、先前未决分组编号和优先级未决分组编号来确定是否调整线程的优先级,其中所述线程待由所述处理器执行以执行在所述两个器件之间所述数据分组的传送,所述先前未决分组编号表示先前保持待在所述两个器件之间传送的数据分组的数目,以及所述优先级未决分组编号对应于所述线程的当前优先级;以及基于所述确定的结果来调整或维持所述线程的所述优先级。9.根据权利要求8所述的装置,其中所述处理器被配置为: 将所述当前未决分组编号与所述先前未决分组编号进行比较; 将所述当前未决分组编号与所述优先级未决分组编号进行比较;以及当所述当前未决分组编号大于或小于所述先前未决分组编号,并且所述当前未决分组编号大于或小于所述优先级未决分组编号时,确定调整所述线程的所述优先级。10.根据权利要求8所述的装置,其中所述处理器被配置为: 当所述当前未决分组编号大于所述先前未决分组编号并且所述当前未决分组编号大于所述优先级未决分组编号时,升级所述线程的所述优先级; 当所述当前未决分组编号小于所述先前未决分组编号并且所述当前未决分组编号小于所述优先级未决分组编号时,降级所述线程的所述优先级;以及否则维持所述线程的所述优先级。11.根据权利要求8所述的装置,其中所述两个器件是点到点(P2P)器件,所述优先级未决分组编号是在未决分组编号阵列中在与所述线程相关联的索引处存储的值,并且在所述未决分组编号阵列中存储的值根据所述两个P2P器件中的一个P2P器件的不同配置被定义。12.根据权利要求11所述的装置,其中所述处理器被配置为: 调整与所述线程相关联的所述索引;以及 将所述线程的所述优先级设置为在线程优先级阵列中在与所述线程相关联的所述索引处存储的值,在所述线程优先级阵列中存储的值根据所述两个P2P器件中的所述一个P2P器件的不同配置被定义。13.根据权利要求8所述的装置,其中所述处理器被配置为: 基于表示用于应用于所述线程的所述优先级的调整量的步长来调整所述线程的所述优先级,所述步长是用户定义的。14.根据权利要求13所述的装置,其中所述处理器被配置为: 确定所述线程的所述优先级的所述调整与所述线程的所述优先级的先前调整一致;以及 基于所述步长重复所述线程的所述优先级的所述调整。15.—种系统,包括: 第一器件; 第二器件; 高速接口,所述高速接口将所述第一器件与所述第二器件耦合;以及 耦合至所述第二器件的处理器,所述处理器被配置为: 接收当前未决分组编号,所述当前未决分组编号表示当前保持待在所述第一器件与所述第二器件之间传送的数据分组的数目; 基于所述当前未决分组编号、先前未决分组编号和优先级未决分组编号来确定是否调整线程的优先级,其中所述线程待由所述处理器执行以执行在所述第一器件与所述第二器件之间所述数据分组的传送,所述先前未决分组编号表示先前保持待在所述第一器件与所述第二器件之间传送的数据分组的数目,以及所述优先级未决分组编号对应于所述线程的当前优先级;以及 基于所述确定的结果来调整或维持所述线程的所述优先级。16.根据权利要求15所述的系统,其中所述处理器被配置为: 将所述当前未决分组编号与所述先前未决分组编号进行比较; 将所述当前未决分组编号与所述优先级未决分组编号进行比较;以及当所述当前未决分组编号大于或小于所述先前未决分组编号,并且所述当前未决分组编号大于或小于所述优先级未决分组编号时,确定调整所述线程的所述优先级。17.根据权利要求15所述的系统,其中所述处理器被配置为: 当所述当前未决分组编号大于所述先前未决分组编号并且所述当前未决分组编号大于所述优先级未决分组编号时,升级所述线程的所述优先级; 当所述当前未决分组编号小于所述先前未决分组编号并且所述当前未决分组编号小于所述优先级未决分组编号时,降级所述线程的所述优先级;以及否则维持所述线程的所述优先级。18.根据权利要求15所述的系统,其中在点到点(P2P)配置中所述高速接口将所述第一器件与所述第二器件耦合,所述优先级未决分组编号是在未决分组编号阵列中在与所述线程相关联的索引处存储的值,并且在所述未决分组编号阵列中存储的值根据所述第二器件的不同配置被定义。19.根据权利要求18所述的系统,其中所述处理器被配置为: 调整与所述线程相关联的所述索引;以及 将所述线程的所述优先级设置为在线程优先级阵列中在与所述线程相关联的所述索引处存储的值,在所述线程优先级阵列中存储的值根据所述第二器件的不同配置被定义。20.根据权利要求15所述的系统,其中所述处理器被配置为: 基于表示用于应用于所述线程的所述优先级的调整量的步长来调整所述线程的所述优先级,所述步长是用户定义的。21.根据权利要求20所述的系统,其中所述处理器被配置为: 确定所述线程的所述优先级的所述调整与所述线程的所述优先级的先前调整一致;以及 基于所述步长重复所述线程的所述优先级的所述调整。
【专利摘要】在某些实现方式中,处理器被配置为接收当前未决分组编号,所述当前未决分组编号表示当前保持待在两个器件之间传送的数据分组的数目,基于所述当前未决分组编号、先前未决分组编号和优先级未决分组编号来确定是否调整线程的优先级,以及基于确定是否调整线程的优先级来调整或维持所述线程的所述优先级。所述线程待由所述处理器执行以执行所述两个器件之间所述数据分组的传送,所述先前未决分组编号表示先前保持待在所述两个器件之间传送的数据分组的数目,以及所述优先级未决分组编号对应于所述线程的当前优先级。
【IPC分类】H04L12/28, H04L12/851
【公开号】CN104904169
【申请号】CN201380033084
【发明人】周侨, 赵学鸣
【申请人】马维尔国际贸易有限公司
【公开日】2015年9月9日
【申请日】2013年4月23日
【公告号】EP2842281A1, US9152459, US20130283285, WO2013163223A1

最新回复(0)