多线程虚拟流水线处理器的线程控制和调用方法及其处理器技术

技术编号:7917499 阅读:225 留言:0更新日期:2012-10-25 02:22
本发明专利技术涉及一种多线程虚拟流水线处理器的线程控制方法,包括如下步骤:将CPU线程运行队列中的线程直接依次分别分配到多线程虚拟流水线处理器的多路并行硬件线程时隙中运行;所述运行的线程产生属于其自身的硬件线程调用指令到硬件线程控制单元;所述硬件线程控制单元将所述ithread的调用指令按照接收时间形成其程序队列,调用并准备所述硬件线程;所述硬件线程按照其在所述硬件线程控制单元中的队列顺序依次在所述多线程虚拟流水线处理器的、空闲的多路并行硬件线程时隙中运行。本发明专利技术还涉及一种处理器。实施本发明专利技术的多线程虚拟流水线处理器的线程控制方法及其处理器,具有以下有益效果:其线程等待的时间大大减小;使得操作也较为简单。

【技术实现步骤摘要】

本专利技术涉及处理器领域,更具体地说,涉及一种多线程虚拟流水线处理器的线程控制和调用方法及其处理器
技术介绍
对于一般的多核处理器而言,通常其线程的管理都是由CPU线程管理单元分配到其多个内核上运行;在層? (Multi Thread Virtual Pipeline ,多线程虚拟流水线 )处理器中,在一些情况下,将GPU的线程等同为CPU线程处理,其CPU线程和GPU线程都是通过CPU线程管理单元进行调用和分配的。一般来讲,这些线程在上述内核上运行时,可能会产生一些新的线程调用,例如,渲染线程;在现有技术中,这些被调用的线程也会由上述CPU线程管理单元进行管理,也就是说,当上述新的线程由运行的线程调用时,被调用的新线程会被加入到上述CPU线程管理单元的运行队列,并和其他在该队列中的线程一起等待出现空闲的内核,并在空闲的内核出现且轮到其运行时才能在上述内核上运行。此外,在这些新线程要求硬件加速时,由于其被作为CPU线程对待,在一些情况下、例如,较长的等待时间可能导致出现内核的定时器中断,此时,需要将运行这些线程(产生新线程调用的线程)运行的内核让给别的线程使用,这就涉及到复杂的数据的存储及取出动作,不仅操作复杂,整个线程的完成时间也进一步拖延。所以,这些被调用的新线程在现有的处理方法下,需要等待的时间可能较长、操作较为复杂。
技术实现思路
本专利技术要解决的技术问题在于,针对现有技术的上述等待时间较长、操作较为复杂的缺陷,提供一种等待时间较短、操作简单的多线程虚拟流水线处理器的线程控制和调用方法及其处理器。本专利技术解决其技术问题所采用的技术方案是构造一种多线程虚拟流水线处理器的线程控制和调用方法,包括如下步骤A)将CPU线程运行队列中的线程直接依次分别分配到多线程虚拟流水线处理器的多路并行硬件线程时隙中运行;B)所述运行的线程产生属于其自身的硬件线程调用指令到硬件线程控制单元;C)所述硬件线程控制单元将所述ithread(硬件线程)的调用指令按照接收时间形成其程序队列,调用并准备所述ithread ;D)所述ithread按照其在所述硬件线程控制单元中的队列顺序依次在所述多线程虚拟流水线处理器的、空闲的多路并行硬件线程时隙中运行。在本专利技术所述的多线程虚拟流水线处理器的线程控制和调用方法中,所述ithread为硬件线程,所述ithread包括图像引擎、DSP或/和通用图像处理器中要求硬件加速的线程。在本专利技术所述的多线程虚拟流水线处理器的线程控制和调用方法中,所述步骤A)进一步包括如下步骤Al)判断所述硬件线程控制单元中是否有有效且未执行完的硬件线程,如有,执行步骤A2);否则,执行步骤A3);A2)将当前空闲的多路并行硬件线程时隙由CPU线程管理单元中移除,禁止该并行硬件线程时隙的线程定时器中断,并将该空闲的多路并行硬件线程时隙配置给所述硬件线程控制单元控制;A3)等待并返回该并行硬件线程时隙空闲的信息到CPU线程管理单元在本专利技术所述的多线程虚拟流水线处理器的线程控制和调用方法中,所述步骤C)中,进一步包括如下步骤Cl)取出所述硬件线程控制单元程序队列中排列在前的ithread ; C2)将得到的可执行函数分配到所述空闲的硬件线程时隙运行。在本专利技术所述的多线程虚拟流水线处理器的线程控制和调用方法中,所述步骤C)中的程序队列排列规则为先进先出。在本专利技术所述的多线程虚拟流水线处理器的线程控制和调用方法中,还包括如下步骤E)当所述ithread执行完毕或进入等待使其继续执行的事件发生时,所述ithread退出其运行的硬件线程时隙并使能该时隙的线程计时中断。在本专利技术所述的多线程虚拟流水线处理器的线程控制和调用方法中,还包括如下步骤F)所述硬件线程控制单元检测其程序队列中的ithread的有效状态是否被清除,如是,清除所述ithread ;否则,保持所述ithread。在本专利技术所述的多线程虚拟流水线处理器的线程控制和调用方法中,在所述步骤B)中,当所述运行的线程在所述处理器的内核模式下运行时,其驱动程序直接产生所述ithread调用指令并送到所述硬件线程控制器的命令队列中。在本专利技术所述的多线程虚拟流水线处理器的线程控制和调用方法中,在所述步骤B)中,当所述运行的线程在所述处理器的用户状态模式下运行时,通过创建一个操作系统SMP( Symmetrical-Multi-Processing)调度器接受的虚拟 pthread,所述虚拟 pthread 运行产生所述ithread调用指令并送到所述硬件线程控制器的命令队列中,其中,所述pthread为操作系统线程。本专利技术还涉及一种实现上述方法的多线程虚拟流水线处理器,包括多个并行的、用于运行线程的处理器硬件内核,用于管理所述处理器中线程并将这些线程分配到所述处理器硬件内核中运行的系统线程管理单元,还包括用于接收并管理运行中的线程产生的ithread,并将所述ithread分配到空闲的处理器硬件内核上,并以协处理器线程方式运行的硬件线程管理单元;所述硬件线程管理单元分别与所述多个并行的处理器内核连接,其中,所述ithread为硬件线程。在本专利技术所述的多线程虚拟流水线处理器中,所述硬件线程管理单元通过所述处理器硬件内核上正在运行的线程发出的ithread调用指令;所述硬件线程管理单元还将被调用并准备就绪的线程发送到所述多个处理器硬件内核上运行。在本专利技术所述的多线程虚拟流水线处理器中,所述硬件线程管理单元还通过第三数据线将其中被调用线程的状态传送到所述系统线程控制单元。在本专利技术所述的多线程虚拟流水线处理器中,所述多个处理器硬件内核还分别通过各自的第四数据线将处于用户状态下运行的线程发出的pthread/ithread线程调用指令传输到所述系统线程控制单元。在本专利技术所述的多线程虚拟流水线处理器中,所述多个处理器硬件内核和所述系统线程控制单元之间还分别通过传输所述各硬件内核定时器中断信号的定时器中断请求信号线连接。实施本专利技术的多线程虚拟流水线处理器的线程控制和调用方法及其处理器,具有以下有益效果由于新产生的硬件线程直接由硬件线程控制单元调用,不需要再到系统线程管理单元排队;内核空闲时马上能够运行上述硬件线程;这使得其线程等待的时间大大减小;同时,遇到定时器中断的可能性也大大减小,使得操作也较为简单。 附图说明图I是本专利技术多线程虚拟流水线处理器的线程控制和调用方法及其处理器实施例中线程控制方法的流程 图2是所述实施例线程控制方法中判断硬件线程是否存在的流程 图3是所述实施例线程控制方法中硬件线程时隙上线程的运行及转换流程示意 图4是所述实施例中应用程序涉及计算量较为集中的部分的一种加速方式; 图5是所述实施例中应用程序涉及计算量较为集中的部分的另一种加速方式; 图6是所述实施例中处理器的结构示意图。具体实施例方式下面将结合附图对本专利技术实施例作进一步说明。如图I所示,在本专利技术的多线程虚拟流水线处理器的线程控制和调用方法及其处理器实施例中,其线程控制和调用方法包括如下步骤 步骤SlOl将系统运行队列中的线程分配到多路并行硬件线程时隙中运行在本实施例中,MVP开始运行时或在该MVP出现并行硬件线程时隙空闲时,系统的监控程序(具体来讲是CPU的线程管理单元)需要将其运行队列中本文档来自技高网...

【技术保护点】
一种多线程虚拟流水线处理器的线程控制和调用方法,其特征在于,包括如下步骤:????A)将CPU线程运行队列中的线程直接依次分别分配到多线程虚拟流水线处理器的多路并行硬件线程时隙中运行;????B)所述运行的线程产生属于其自身的ithread调用指令到硬件线程控制单元;????C)所述硬件线程控制单元将所述ithread的调用指令按照接收时间形成其程序队列,调用并准备所述ithread;????D)所述ithread按照其在所述硬件线程控制单元中的队列顺序依次在所述多线程虚拟流水线处理器的、空闲的多路并行硬件线程时隙中运行。

【技术特征摘要】

【专利技术属性】
技术研发人员:梅思行
申请(专利权)人:深圳中微电科技有限公司
类型:发明
国别省市:

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

1