多硬件线程处理器及其业务处理方法.pdf

上传人:Y948****062 文档编号:1023563 上传时间:2018-03-26 格式:PDF 页数:16 大小:751.88KB
返回 下载 相关 举报
摘要
申请专利号:

CN200910093490.3

申请日:

2009.09.24

公开号:

CN101661386A

公开日:

2010.03.03

当前法律状态:

授权

有效性:

有权

法律详情:

专利权人的姓名或者名称、地址的变更IPC(主分类):G06F 9/38变更事项:专利权人变更前:成都市华为赛门铁克科技有限公司变更后:华为数字技术(成都)有限公司变更事项:地址变更前:611731 四川省成都市高新区西部园区清水河片区变更后:611731 四川省成都市高新区西部园区清水河片区|||授权|||实质审查的生效IPC(主分类):G06F 9/38申请日:20090924|||公开

IPC分类号:

G06F9/38

主分类号:

G06F9/38

申请人:

成都市华为赛门铁克科技有限公司

发明人:

李 昶

地址:

611731四川省成都市高新区西部园区清水河片区

优先权:

专利代理机构:

北京同立钧成知识产权代理有限公司

代理人:

刘 芳

PDF下载: PDF下载
内容摘要

本发明实施例公开了一种多硬件线程处理器及其业务处理方法。该方法包括:获得硬件线程的FIFO队列状态,所述FIFO队列状态达到预设状态时向上游硬件线程发送控制命令;接收到所述控制命令的上游硬件线程根据所述控制命令对业务进行处理。该多硬件线程处理器包括硬件线程以及所述硬件线程的至少一个上游硬件线程。本发明实施例硬件线程可根据自身的FIFO队列的状态,向上游硬件线程发送控制命令使上游硬件线程暂停对业务的处理,可有效提高各硬件线程占有流水线资源的利用率,降低流水线资源的浪费,提高整个CPU处理业务的

权利要求书

1: 一种多硬件线程处理器的业务处理方法,其特征在于,包括: 获得硬件线程的先进先出队列状态,在所述先进先出队列状态达到预设 状态时向上游硬件线程发送控制命令; 接收到所述控制命令的上游硬件线程根据所述控制命令对业务进行处 理。
2: 根据权利要求1所述的多硬件线程处理器的业务处理方法,其特征在 于,所述获得硬件线程的先进先出队列状态包括: 检查硬件线程的先进先出队列中缓存报文的数量,判断所述缓存报文的 数量是否超过预设正常阈值,如果是,则所述先进先出队列状态为繁忙状态, 否则,所述先进先出队列状态为正常状态; 所述先进先出队列状态达到预设状态时向上游硬件线程发送控制命令包 括: 当所述先进先出队列状态为繁忙状态时,所述硬件线程向其维护的上游 硬件线程中处于最上游的硬件线程发送暂停对业务处理的返压指令。
3: 根据权利要求2所述的多硬件线程处理器的业务处理方法,其特征在 于,所述获得硬件线程的先进先出队列状态还包括: 若所述先进先出队列为繁忙状态时,判断所述繁忙状态的先进先出队列 中的缓存报文的数量是否超过预设繁忙阈值,如果是,则所述先进先出队列 状态为极度繁忙状态; 所述先进先出队列状态达到预设状态时向上游硬件线程发送控制命令包 括: 当所述先进先出对列状态为极度繁忙状态时,所述硬件线程向其维护的 所有上游硬件线程发送暂停对业务处理的返压指令。
4: 根据权利要求2或3所述的多硬件线程处理器的业务处理方法,其特 征在于,还包括: 所述先进先出队列状态恢复到正常状态时,所述硬件线程向因接收反压 指令而停止业务处理的上游硬件线程发送恢复对业务处理的解返压指令。
5: 一种多硬件线程处理器,包括硬件线程以及所述硬件线程的至少一个 上游硬件线程,其特征在于, 所述硬件线程,用于获得硬件线程的先进先出队列状态,在所述先进先 出队列状态达到预设状态时向上游硬件线程发送控制命令; 所述上游硬件线程,用于接收到所述控制命令时根据所述控制命令对业 务进行处理。
6: 根据权利要求5所述的多硬件线程处理器,其特征在于,所述硬件线 程包括: 状态获取模块,用于根据先进先出队列中的缓冲报文的数量,获得硬件 线程的先进先出队列状态; 指令发送模块,用于所述先进先出队列状态达到预设状态时向上游硬件 线程发送控制命令。
7: 根据权利要求6所述的多硬件线程处理器,其特征在于,所述状态获 取模块包括: 报文数量检查单元,用于检查硬件线程的先进先出队列中缓存报文的数 量; 第一判断单元,用于判断所述缓存报文的数量是否超过预设正常阈值,如 果是,则所述先进先出队列状态为繁忙状态,否则,所述FIF0队列状态为正 常状态; 所述指令发送模块具体用于当所述先进先出队列状态为繁忙状态时,向 硬件线程维护的上游硬件线程中处于最上游的硬件线程发送暂停对业务处理 的返压指令。
8: 根据权利要求7所述的多硬件线程处理器,其特征在于,所述状态获 取模块还包括: 第二判断单元,用于若所述先进先出队列为繁忙状态时,判断所述繁忙 状态的先进先出队列中的缓存报文的数量是否超过预设繁忙阈值,如果是, 则所述先进先出队列状态为极度繁忙状态; 所述指令发送模块还用于当所述先进先出对列状态为极度繁忙状态时, 所述硬件线程向其维护的所有上游硬件线程发送暂停对业务处理的返压指 令。
9: 根据权利要求7或8所述的多硬件线程处理器,其特征在于,所述指 令发送模块还用于当所述先进先出队列状态恢复到正常状态时,向因接收反 压指令而停止业务处理的的上游硬件线程发送恢复业务处理的解返压指令。

说明书


多硬件线程处理器的业务处理装置及其业务处理方法

    【技术领域】

    本发明涉及计算机技术领域,特别是涉及一种多硬件线程处理器的业务处理装置及其业务处理方法。 

     背景技术

    多核多硬件线程处理器(CPU)中,一个CPU核内通常包含一个流水线(pipeline)以及多个同时运行的硬件线程,其中,每个硬件线程均有自己的上下文环境、寄存器、中断和异常处理,操作系统或应用软件运行在这种硬件线程上,就如同运行在一个CPU上一样,因此,这种硬件线程又称作为虚拟CPU(virtual CPU,vCPU)。由于多个硬件线程共用一个流水线,虽然可以使流水线的性能最大化,但是,若一个硬件线程占用流水线资源过多,势必会降低其它硬件线程的性能,所以需要控制每个硬件线程占用流水线的资源,提高CPU的整体性能。 

    目前,对流水线资源的控制主要采用轮询方式、固定频率方式以及优先级方式来对各硬件线程占用流水线的资源进行分配,具体分配方法如下:(1)通过轮询方式来分配各个硬件线程的指令。该种方式下,在每个CPU时钟周期内,每个硬件线程的指令均可平等地调度到流水线中执行。(2)通过固定频率的方式分配各个硬件线程的指令。该种方式下,每个硬件线程被调度到流水线后,执行固定数量的指令后才让出流水线资源。(3)通过优先级的方式分配各个硬件线程的指令。该种方式下,每个硬件线程根据优先级的高低来决定占用流水线资源,优先级高的线程优先获得流水线资源。 

    发明人在实现本发明的过程中发现现有技术至少存在以下缺陷:由于一个业务处理流程需要一个CPU核上的多个硬件线程来完成,如防火墙的报文处理,而CPU核的多个硬件线程在处理同一业务流程时,执行前期业务流程的上游硬件线程在报文处理完毕后,交给下游硬件线程继续对其处理时,若下游硬件线程繁忙而无法处理,需要丢弃报文,则执行前期业务流程的上游硬件线程占用的流水线的资源就会浪费掉,因此会降低整个CPU处理业务的性能。 

     发明内容

    本发明的目的是提供一种多硬件线程处理器的业务处理装置及其业务处理方法,提高整个处理器处理业务的性能。 

    为实现上述目的,本发明实施例提供了一种多硬件线程处理器的业务处理方法,包括: 

    根据硬件线程的先进先出队列中缓冲报文的数量与预设的阈值之间的关系,获得硬件线程的先进先出队列状态,在所述先进先出队列状态达到预设状态时向上游硬件线程发送控制命令,以控制所述上游硬件线程暂停或继续执行业务处理; 

    接收到所述控制命令的上游硬件线程根据所述控制命令对业务进行处理。 

    本发明实施例提供了一种多硬件线程处理器的业务处理装置,包括 

    硬件线程模块,用于根据硬件线程的先进先出队列中缓冲报文的数量与预设的阈值之间的关系,获得硬件线程的先进先出队列状态,所述状态反映了所述先入先出队列的繁忙程度,在所述先进先出队列状态达到预设状态时向上游硬件线程模块发送控制命令,以控制所述上游硬件线程模块暂停或继续执行业务处理; 

    上游硬件线程模块,用于接收所述控制命令并根据所述控制命令对业务进行处理。 

    本发明实施例中,处于下游的硬件线程可以根据FIFO队列状态,向其上游硬件线程发送控制命令,控制上游硬件线程对业务的处理,使得上游硬件线程可根据其下游硬件线程的FIFO队列的繁忙状态,控制对业务处理的进度, 避免上游硬件线程处理业务后并将报文发送到下游硬件线程时导致报文丢弃,造成上游硬件线程占用的流水线的资源浪费的问题,可有效提高整个CPU处理业务的性能。 

     附图说明

    为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。 

    图1为本发明多硬件线程处理器的业务处理方法实施例一的结构示意图; 

    图2为本发明多硬件线程处理器的业务处理方法实施例二的流程示意图; 

    图3为8核CPU的结构示意图; 

    图4为8核CPU中一个CPU核中的四个硬件线程对业务的处理流程图; 

    图5为本发明多硬件线程处理器实施例一的结构示意图; 

    图6为本发明多硬件线程处理器实施例二中硬件线程的结构示意图; 

    图7为本发明多硬件线程处理器实施例中状态获取模块的结构示意图。 

     具体实施方式

    下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。 

    图1为本发明多硬件线程处理器的业务处理方法实施例一的结构示意图。该方法包括: 

    步骤101、获得硬件线程的先进先出(First Input First Output,FIFO) 队列状态,所述FIFO队列状态达到预设状态时向上游硬件线程发送控制命令; 

    步骤102、接收到所述控制命令的上游硬件线程根据所述控制命令对业务进行处理。 

    本发明实施例可应用于多核多硬件线程处理器中,在处理业务过程中,同一CPU核上的多个硬件线程在处理一个业务流程中,各硬件线程可以根据其管理的FIFO队列的繁忙程度,向其上游硬件线程发送控制命令,以控制上游硬件线程暂停或继续执行业务处理。具体地,假设当前硬件线程的FIFO队列中的缓存报文数量较多时,且其占用的流水线资源较少,则上游硬件线程将报文发送来时,当前硬件线程的FIFO队列可能因空间已满而无法全部接收发送来的报文,必然导致报文丢掉处理,因此,本实施例中当前硬件线程的FIFO队列中报文缓存数量较多时,可向其上游硬件线程发送暂停对新业务进行处理的控制命令,这样上游硬件线程就会释放出更多的资源,因此,硬件线程可获得上游硬件线程释放的流水线资源,加快对自身FIFO队列中报文的处理,避免因自身的FIFO队列繁忙而导致上游硬件线程发送的报文丢弃,导致上游硬件线程对报文进行处理时占用的流水线资源被浪费。 

    本发明实施例中,各硬件线程可以根据其管理的FIFO队列状态,向其上游硬件线程发送控制命令,控制上游硬件线程对业务的处理,使得上游硬件线程可根据其下游硬件线程的FIFO队列的繁忙状态,控制对业务处理的进度,避免上游硬件线程处理业务后并将报文发送到下游硬件线程时导致报文丢弃,造成上游硬件线程占用的流水线的资源浪费的问题,可有效提高整个CPU处理业务的性能。 

    图2为本发明多硬件线程处理器的业务处理方法实施例二的流程示意图。本发明实施例可应用于多核多硬件线程处理器处理业务的流程中,由于CPU核中的每个硬件线程均管理有相应的独立的FIFO队列,当CPU核中的硬件线程在从各自管理的FIFO队列中读取报文时,可检查FIFO队列中缓存报文的数量,对FIFO队列状态进行检查,并根据FIFO队列状态向其上游硬件线程 发送返压指令或解返压指令,以控制上游硬件线程暂停或继续对报文的处理,其中,所述的返压指令是指当前硬件线程向其上游硬件线程发送的指示上游硬件线程暂停处理新业务的指令,解返压指令是指当前硬件线程向其上游硬件线程发送的指示上游硬件线程恢复处理新业务的指令。具体地,本发明实施例方法包括: 

    步骤201、硬件线程检查其管理的FIFO队列的缓存报文的数量。 

    当硬件线程在其管理的FIFO队列中读取报文时,可检查FIFI队列中缓存报文的数量,获得缓存报文的数量。 

    步骤202、硬件线程判断其管理的FIFO队列中报文的数量是否超过预设正常阈值,如果是,则将FIFO队列状态设定为繁忙状态,执行步骤203,否则,将FIFO队列状态设定为正常状态,执行步骤206。 

    步骤203、硬件线程判断其管理的FIFO队列中报文的数量是否超过预设繁忙阈值,如果是,则将FIFO队列状态设定为极度繁忙状态,执行步骤204,否则,执行步骤205。 

    步骤204、硬件线程向其维护的所有上游硬件线程发送返压指令。 

    本步骤中,当硬件线程的FIFO队列处于极度繁忙状态时,说明此时FIF0队列可能无法接收其上游硬件线程发送来的报文,因此,可发送返压指令到硬件线程维护的所有上游硬件线程,指示上游硬件线程暂停对新业务报文的处理。具体地,硬件线程本身可维护有其上游硬件线程的分布情况,并根据其上游硬件线程的分布以及FIFO队列的繁忙程度,将返压指令发送给上游硬件线程。上游硬件线程接收到返压指令后,可暂停对新业务报文的处理,将其占用的流水线资源让给处于其下游的硬件线程。 

    步骤205、硬件线程向其维护的上游硬件线程中处于最上游的硬件线程发送返压指令。 

    步骤206、若硬件线程的FIFO队列状态是从繁忙状态或极度繁忙状态恢复到正常状态时,硬件线程向因接收反压指令而停止业务处理的上游硬件线 程发送解返压指令,以使上游硬件线程恢复对新业务的处理。 

    为对本发明实施例有更好的了解,下面以8核CPU中的一个核中的四个硬件线程对业务的处理流程进行说明。 

    图3为8核CPU的结构示意图;图4为8核CPU中一个CPU核中的四个硬件线程对业务的处理流程图。具体地,如图3所示,所述的8核CPU包括8个CPU核,分别为核0~核7,且每个CPU核均包含有四个硬件线程,每个硬件线程可称之为vCPU。下面以CPU核4为例说明CPU核中的四个vCPU16、vCPU17、vCPU18和vCPU19对一个业务的处理流程,其中,vCPU16为负责收包的vCPU,vCPU17为负责对报文进行初步处理的vCPU,vCPU18为负责对报文进行进一步处理的vCPU,vCPU19为负责对处理后的报文进行发包的vCPU。业务的处理流程可包括以下步骤: 

    步骤301、vCPU16通过网络驱动接收到报文,并将报文写入共享内存区的第一FIFO队列。 

    其中,所述的第一FIFO队列即为vCPU17管理的FIFO队列,vCPU17可从该第一FIFO队列中读取和处理报文。 

    步骤302、vCPU17从第一FIFO队列中读取报文,对报文进行处理。 

    步骤303、vCPU17将需要进一步处理的报文写入第二FIFO队列中。 

    其中,所述的第二FIFO队列为vCPU18管理的FIFO队列,vCPU18可从该第二FIFO队列中读取和处理报文。 

    步骤304、vCPU18从第二FIFO队列中读取报文,对报文进行进一步地处理。 

    步骤305、vCPU18将处理后的报文写入第三FIFO队列。 

    其中,所述的第三FIFO队列为vCPU19管理的FIFO队列,vCPU19可从该第三FIFO队列中读取并转发报文。 

    步骤306、vCPU19从第三FIFO队列中读取报文,并将报文转发出去。 

    可以看出,在CPU核的业务处理流程中,若其中一个vCPU出现瓶颈,将 导致其管理的相应的FIFO队列由于塞满了缓存报文而导致新送入的报文溢出,导致丢包。具体地,假设vCPU18中的FIFO队列处于繁忙状态,则在vCPU17将报文写入vCPU18的第二FIFO队列时,可能会出现第二FIFO队列满而无法写进去,此时只能将vCPU17要写如入的报文丢弃,则步骤304之前的vCPU16和vCPU17对报文的处理均是无用功,其占用的流水线资源也被浪费掉。 

    因此,本发明实施例可应用于上述业务处理流程中,当vCPU18在从第二FIFO队列中读取报文时,可检查第二FIFO队列状态,确定第二FIFO队列状态是否处于繁忙或极度繁忙状态,并向处于上游的vCPU16和/或vCPU17发送返压指令,指示其暂停对业务的处理,则vCPU16和/或vCPU17占用的流水线资源即可被vCPU18使用,加快vCPU18对第二FIFO队列中报文处理的速度,同时可有效避免vCPU16和/或vCPU17因第二FIFO队列满而造成的资源浪费。此外,当第二FIFO队列中缓存报文的数量减少至一定值时,即FIFO队列状态恢复到正常状态时,vCPU18可向因接收反压指令而停止业务处理的vCPU发送解返压指令,指示相应的vCPU恢复对新业务的处理。 

    上述本发明实施例中,硬件线程发送返压指令到其上游硬件线程时,也可根据上游硬件线程的分布状况,向维护的部分硬件线程发送返压指令,具体地,硬件线程可为其维护的上游硬件线程设定返压优先级,当需要向上游硬件线程发送返压指令时,可优先向处于较高返压优先级的硬件线程发送返压指令。一般而言,对于一个硬件线程,处于越上游的硬件线程,其具有的返压优先级就越高,即当前的硬件线程需要发送返压指令时,首先将其发送给返压优先级最高的上游硬件线程。 

    图5为本发明多硬件线程处理器实施例一的结构示意图。本实施例中多硬件线程处理器包括硬件线程以及所述硬件线程的至少一个上游硬件线程,其中, 

    所述硬件线程,用于获得硬件线程的FIFO队列状态,在所述FIFO队列状态达到预设状态时向上游硬件线程发送控制命令; 

    所述上游硬件线程,用于接收到所述控制命令时根据所述控制命令对业务进行处理。 

    本发明实施例硬件线程可根据其管理的FIFO队列状态,向其上游硬件线程发送控制命令,控制上游硬件线程对业务的处理,使得上游硬件线程可根据其下游硬件线程的FIFO队列的繁忙状态,控制对业务处理的进度,避免上游硬件线程处理业务后并将报文发送到下游硬件线程时导致报文丢弃,造成上游硬件线程占用的流水线的资源浪费的问题,可有效提高整个CPU处理业务的性能。 

    图6为本发明多硬件线程处理器实施例二中硬件线程的结构示意图。如图6所示,本发明实施例中的硬件线程可包括状态获取模块1和指令发送模块2,其中, 

    状态获取模块1,用于根据FIFO队列中的缓冲报文的数量,获得硬件线程的FIFO队列状态; 

    指令发送模块2,用于所述FIFO队列状态达到预设状态时向上游硬件线程发送控制命令。 

    图7为本发明多硬件线程处理器实施例中状态获取模块的结构示意图。具体地,如图7所示,本发明实施例中的状态获取模块1可包括:报文数量检查单元11和第一判断单元12,其中, 

    报文数量检查单元11,用于检查硬件线程的FIFO队列中缓存报文的数量; 

    第一判断单元12,用于判断所述缓存报文的数量是否超过预设正常阈值,如果是,则所述FIFO队列状态为繁忙状态,否则,所述FIFO队列状态为正常状态; 

    所述指令发送模块可具体用于当所述FIFO队列状态为繁忙状态时,向硬件线程维护的上游硬件线程中处于最上游的硬件线程发送暂停对业务处理的返压指令; 

    其中,在多硬件线程中,每个CPU核的各硬件线程排列顺序是固定的, 当所述FIFO对列状态为繁忙状态时,向处于最上游的硬件线程发送暂停对业务处理的返压指令。 

    此外,如图7所示,状态获取模块1还可包括:第二判断单元13,用于若所述FIFO队列为繁忙状态时,判断所述繁忙状态的FIFO队列中的缓存报文的数量是否超过预设繁忙阈值,如果是,则所述FIFO队列状态为极度繁忙状态; 

    所述指令发送模块还可用于当所述FIFO对列状态为极度繁忙状态时,所述硬件线程向其维护的所有上游硬件线程发送暂停对业务处理的返压指令。 

    本发明实施例中,所述指令发送模块还可用于当所述FIFO队列状态恢复到正常状态时,向因接收返压指令而停止业务处理的上游硬件线程发送恢复业务处理的解返压指令。 

    本发明实施例可根据硬件线程的FIFO队列的状态向上游硬件线程发送控制命令,控制上游硬件线程对业务的处理,使得上游硬件线程可根据其下游硬件线程的FIFO队列的繁忙状态,控制对业务处理的进度,避免上游硬件线程处理业务后在将报文发送到下游硬件线程而导致报文丢弃,造成上游硬件线程占用的流水线的资源浪费的问题,可有效提高整个CPU处理业务的性能。 

    本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read‑OnlyMemory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。 

    最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。 

    

多硬件线程处理器及其业务处理方法.pdf_第1页
第1页 / 共16页
多硬件线程处理器及其业务处理方法.pdf_第2页
第2页 / 共16页
多硬件线程处理器及其业务处理方法.pdf_第3页
第3页 / 共16页
点击查看更多>>
资源描述

《多硬件线程处理器及其业务处理方法.pdf》由会员分享,可在线阅读,更多相关《多硬件线程处理器及其业务处理方法.pdf(16页珍藏版)》请在专利查询网上搜索。

本发明实施例公开了一种多硬件线程处理器及其业务处理方法。该方法包括:获得硬件线程的FIFO队列状态,所述FIFO队列状态达到预设状态时向上游硬件线程发送控制命令;接收到所述控制命令的上游硬件线程根据所述控制命令对业务进行处理。该多硬件线程处理器包括硬件线程以及所述硬件线程的至少一个上游硬件线程。本发明实施例硬件线程可根据自身的FIFO队列的状态,向上游硬件线程发送控制命令使上游硬件线程暂停对业务的。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1