一种流数据处理方法及流处理器技术

技术编号:4154928 阅读:222 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种流数据处理方法,包括如下步骤:得到数据中指示其所属任务的程序指针,并依据所述程序指针配置一个线程处理引擎;多个线程引擎同时处理所述任务不同时段的数据或多个线程引擎同时处理所述不同任务的数据;判断是否还有数据未处理,如有,返回上述第一步骤;如没有,退出本次数据处理。本发明专利技术还涉及一种用于处理流数据的处理器。实施本发明专利技术的一种流数据处理方法及流处理器,具有以下有益效果:可以花费较小的代价来达到较高的性能,其性价比较高。

Stream data processing method and stream processor

The invention relates to a stream data processing method, which comprises the following steps: get the task instructions in the data pointer program, and according to the procedure pointer configuration of a thread data processing engine; multiple threads engines while processing the tasks in different periods of data or a plurality of thread processing engine of the different tasks at the same time; judging if there is not data processing, such as a return to the first step; if not, from the data processing. The invention also relates to a processor for processing stream data. A stream data processing method and a stream processor implementing the present invention have the following beneficial effects: higher cost performance can be achieved with less cost, and the cost performance is higher.

【技术实现步骤摘要】

本专利技术涉及数据处理领域,更具体地说,涉及一种流数据处理方法及流处理器
技术介绍
电子技术的发展对处理器提出越来越高的需求,通常集成电路工程师通过增加 时钟速度、硬件资源以及特殊应用功能来为使用者提供更多或更好的性能。这种做法在 一些应用场合,特别是移动应用时并不是太恰当。通常,处理器时钟的原始速度的提高并 不能打破处理器由于访问储存器及外设速度的限制而带来的瓶颈。对于处理器而言,增 加硬件需要大量的该处理器在使用中的更高的使用效率,由于ILP(Instruction Level Parallelism)的缺少,上述增加硬件通常是不可能的。而使用特殊的功能模块又会带来对 于该处理器应用范围的限定以及对产品上市时间的拖延。特别是对于现在使用广泛的流媒 体而言,因其使用的范围较广,尤其是在终端设备中,大都用于采用电池供电的便携式移动 终端,其上述问题更加突出。单独提高硬件性能,例如增加时钟频率、增加处理器中核的数 量,虽然可以在一定程度上解决问题,但是可能带来成本及耗电量的增加,其代价太大,其 性价比不高。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述成本及耗电量的增加,其代价太大,性价比不高的缺陷,提供一种性价比较高的流数据处理方法及流处理器。 本专利技术解决其技术问题所采用的技术方案是构造一种流数据处理方法,包括如下步骤 A)得到数据中指示其所属任务的程序指针,并依据所述程序指针配置一个线程处 理引擎; B)多个线程引擎同时处理所述任务不同时段的数据或多个线程引擎同时处理所 述不同任务的数据; C)判断是否还有数据未处理,如有,返回步骤A);如没有,退出本次数据处理。 在本专利技术所述的流数据处理方法中,所述步骤A)进一步包括 Al)将同一个任务中不同时段的数据或多个任务的数据分别分配到不同的、空闲的、通过虚拟直接存储器访问通道与所述线程处理引擎连接的本地存储单元中。 在本专利技术所述的流数据处理方法中,所述步骤A)进一步包括 A2)将同一任务分配到所述多个线程处理引擎; A3)初始化每个线程处理引擎,通过设置存储指针使其通过所述虚拟直接存储器 访问通道与一个本地存储单元连接; A4)所述多个线程处理引擎同时处理与其连接的本地存储单元中数据。 在本专利技术所述的流数据处理方法中,所述步骤A)进一步包括如下步骤 A2')将多个任务分别分配到所述多个线程处理引擎; A3')初始化每个线程处理引擎,通过设置存储指针使其通过所述虚拟直接存储 器访问通道与一个本地存储单元连接; A4')所述多个线程处理引擎同时处理与其连接的本地存储单元中数据。 在本专利技术所述的流数据处理方法中,所述步骤C)进一步包括 CI)释放通过所述虚拟直接存储器访问通道与所述多线程处理引擎连接的本地存 储单元; C2)判断未连接到多个线程处理引擎的本地存储单元中是否存在未处理数据,如有,返回步骤A);如无,执行步骤C3); C3)释放所有资源,结束本次数据处理。 在本专利技术所述的流数据处理方法中,所述线程处理引擎的数量为4个,所述本地 存储单元的数量为4个或8个。 在本专利技术所述的流数据处理方法中,还包括如下步骤接收到所述任务或硬件发出的中断请求时,中断分配给所述任务的线程处理引擎的处理,执行中断处理程序。在本专利技术所述的流数据处理方法中,还包括如下步骤当任意一个正在运行的线程处理引擎需要等待较长时间,释放该线程处理引擎,并将其配置到其他正在运行的同一个或不同的任务中。本专利技术还涉及一种用于处理流数据的处理器,包括 并行的多个线程处理引擎用于处理被分配给该线程处理引擎的任务或线程; 管理单元用于取得、判断和控制所述多个线程处理引擎的状态,将处于等待队列 中的线程或任务分配到所述多个线程处理引擎中; 本地存储区域用于存储所述线程处理引擎处理的数据,配合所述线程处理引擎 完成数据处理。 在本专利技术所述的处理器中,还包括用于数据及线程缓冲、指令缓冲的内部存储系 统以及用于存储所述并行处理器的各种状态的寄存器。 在本专利技术所述的处理器中,所述线程处理引擎包括算术逻辑运算单元以及与所述 算术逻辑运算单元对应的乘加器。 在本专利技术所述的处理器中,所述本地存储区域包括多个本地存储单元,所述本地存储单元在所述线程处理引擎工作时被配置对应于所述线程处理引擎。 在本专利技术所述的处理器中,所述线程处理引擎为4个,所述本地存储单元为8个,所述线程处理引擎工作时任意4个本地存储单元被分别配置与所述线程处理引擎一一对应。在本专利技术所述的处理器中,,所述管理单元包括 软件配置模块用于依据起始程序指针为所述线程处理引擎设置其任务; 任务初始化模块用于设置所述任务的本地存储区域指针和全局存储区域指针; 线程配置模块用于设置一个任务的优先级和运行模式; 中断处理模块用于处理所述流处理器接收到的外部和内部中断; 暂停控制模块用于控制所述线程处理引擎在处理任务时暂时停止或重新开始。 在本专利技术所述的处理器中,所述管理单元还包括线程控制寄存器,所述线程控制寄存器进一步包括用于表明任务程序的起始物理地址的起始程序指针寄存器,用于表明本地存储区域的起始地址的本地存储区域起始基点寄存器,用于表明线程全局存储区域的 起始地址的全局存储区域起始基点寄存器以及用于设置该线程优先级、运行模式的线程配 置寄存器。 在本专利技术所述的处理器中,所述管理单元通过改变所述线程处理引擎的配置来改 变所述线程处理引擎运行的任务;所述配置包括改变所述起始程序指针寄存器的值或改变 指向所述本地存储单元的本地存储单元指针。 在本专利技术所述的处理器中,所述中断处理模块包括中断处理单元,所述线程中断单元在其中断寄存器控制位置位时控制所述内核或其他内核中的线程中断。 实施本专利技术的一种流数据处理方法及流处理器,具有以下有益效果由于在一定程度上提高了硬件,使用多个并行的算术逻辑单元及其对应的核内存储系统,并且通过软件及线程管理单元对该处理器要处理的线程进行管理,使得该多个算术逻辑单元在工作任务饱和时达到动态负载平衡,而在其任务不饱和时关掉其中部分算术逻辑运算单元,以节省其电能消耗。因此,可以花费较小的代价来达到较高的性能,其性价比较高。附图说明图1是本专利技术流数据处理方法及流处理器实施例中方法流程图;图2是所述实施例中该处理器的结构示意图;图3是所述实施例中数据线程结构示意图;图4是所述实施例中任务线程结构示意图;图5是所述实施例中MVP线程结构示意图;图6是所述实施例中MVP线程结构示意图;图7是所述实施例中操作MVP线程及操作模式结构示意图;图8是所述实施例中MVP线程本地存储结构示意图;图9是所述实施例中指令输出结构示意图;图10是所述实施例中MVP线程缓冲配置示意图;图11是所述实施例中本地存储单元与线程处理引擎配置示意图。具体实施例方式下面将结合附图对本专利技术实施例作进一步说明。 如图1所示,在本专利技术一种流数据处理方法及流处理器实施例中,其流数据处理 方法包括如下步骤 步骤S11取得数据中的程序指针通常在处理器中,会出现同时需要处理不同任 务的情况,而在流数据处理中,这种情况也是常见的。例如,同时有两路不同的流数据输入, 需要同时对其处理。当然,可以先处理其中一个,再处理另一个,这样的方法会带来时间上 的延迟本文档来自技高网...

【技术保护点】
一种流数据处理方法,其特征在于,包括如下步骤:A)得到数据中指示其所属任务的程序指针,并依据所述程序指针配置一个线程处理引擎;B)多个线程引擎同时处理所述任务不同时段的数据或多个线程引擎同时处理所述不同任务的数据;C)判断是否还有数据未处理,如有,返回步骤A);如没有,退出本次数据处理。

【技术特征摘要】
一种流数据处理方法,其特征在于,包括如下步骤A)得到数据中指示其所属任务的程序指针,并依据所述程序指针配置一个线程处理引擎;B)多个线程引擎同时处理所述任务不同时段的数据或多个线程引擎同时处理所述不同任务的数据;C)判断是否还有数据未处理,如有,返回步骤A);如没有,退出本次数据处理。2. 根据权利要求1所述的流数据处理方法,其特征在于,所述步骤A)进一步包括 Al)将同一个任务中不同时段的数据或多个任务的数据分别分配到不同的、空闲的、通过虚拟直接存储器访问通道与所述线程处理引擎连接的本地存储单元中。3. 根据权利要求1所述的流数据处理方法,其特征在于,所述步骤A)进一步包括 A2)将同一任务分配到所述多个线程处理引擎;A3)初始化每个线程处理引擎,通过设置存储指针使其通过所述虚拟直接存储器访问 通道与一个本地存储单元连接;A4)所述多个线程处理引擎同时处理与其连接的本地存储单元中数据。4. 根据权利要求1所述的流数据处理方法,其特征在于,所述步骤A)进一步包括如下 步骤A2')将多个任务分别分配到所述多个线程处理引擎;A3')初始化每个线程处理引擎,通过设置存储指针使其通过所述虚拟直接存储器访 问通道与一个本地存储单元连接;A4')所述多个线程处理引擎同时处理与其连接的本地存储单元中数据。5. 根据权利要求3或4所述的流数据处理方法,其特征在于,所述步骤C)进一步包括 CI)释放通过所述虚拟直接存储器访问通道与所述多线程处理引擎连接的本地存储单元;C2)判断未连接到多个线程处理引擎的本地存储单元中是否存在未处理数据,如有,返 回步骤A);如无,执行步骤C3);C3)释放所有资源,结束本次数据处理。6. 根据权利要求5所述的流数据处理方法,其特征在于,所述线程处理引擎的数量为4 个,所述本地存储单元的数量为4个或8个。7. 根据权利要求3或4所述的流数据处理方法,其特征在于,还包括如下步骤接收到 所述任务或硬件发出的中断请求时,中断分配给所述任务的线程处理引擎的处理,执行中 断处理程序。8. 根据权利要求3或4所述的流数据处理方法,其特征在于,还包括如下步骤当任意 一个正在运行的线程处理引擎需要等待较长时间,释放该线程处理引擎,并将其配置到其 他正在运行的同一个或不同的任务中。9. 一种流数据处理器,其特征在于,包括并行的多个线程处理引擎用于处理被分配给该线程...

【专利技术属性】
技术研发人员:梅思行王世好劳咏仪冯凯敏白华
申请(专利权)人:宇盛通信科技深圳有限公司
类型:发明
国别省市:94[中国|深圳]

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1