CN112732416A - 有效消除数据访问延迟的并行数据处理方法及并行处理器 - Google Patents
有效消除数据访问延迟的并行数据处理方法及并行处理器 Download PDFInfo
- Publication number
- CN112732416A CN112732416A CN202110064248.4A CN202110064248A CN112732416A CN 112732416 A CN112732416 A CN 112732416A CN 202110064248 A CN202110064248 A CN 202110064248A CN 112732416 A CN112732416 A CN 112732416A
- Authority
- CN
- China
- Prior art keywords
- thread
- data
- parallel
- processing engine
- parallel processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 16
- 238000000034 method Methods 0.000 claims abstract description 19
- 230000008569 process Effects 0.000 claims abstract description 11
- 230000005059 dormancy Effects 0.000 claims abstract description 7
- 230000003139 buffering effect Effects 0.000 claims description 14
- 230000007246 mechanism Effects 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract description 4
- 230000009191 jumping Effects 0.000 abstract description 3
- 239000002699 waste material Substances 0.000 abstract description 2
- 230000006872 improvement Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/461—Saving or restoring of program or task context
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3814—Implementation provisions of instruction buffers, e.g. prefetch buffer; banks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
- G06F9/3869—Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
Abstract
本发明提供了一种有效消除数据访问延迟的并行数据处理方法,包括如下步骤:把可并行处理数据分成若干工作组,针对每个工作组设置参数;启动多线程进行处理,每个线程处理一个工作项;若遇需到外部存储器访问的数据,则保存上下文,当前线程进行休眠等待,硬件切换到下一个线程并开展运算;等数据返回后通知休眠等待的线程进入随时切换等待,只要硬件资源释放出来,便可立即重新运算。本发明还提供了一种并行处理器。本发明的有益效果是:能较好的降低任务切换代价以及分支跳转代价,降低计算资源的浪费及能量的消耗。
Description
技术领域
本发明涉及处理器,尤其涉及一种有效消除数据访问延迟的并行数据处理方法及并行处理器。
背景技术
目前,现有的并行数据处理方法的任务切换代价较大,例如专利号为:200910190339.1的中国专利,并行处理器及其线程处理方法,揭示了一种能够实现并行任务的MVP(Multi-thread Virtual Pipeline,多线程虚拟流水线)处理器,其能有效应对大量并行任务,性价比较高。但是,当数据访问指令相对较多,而计算指令和最大线程数掩盖不了延迟时,该并行处理器不能很好适应任务特性,导致任务切换代价较大,计算资源浪费及能量的过度消耗。
发明内容
为了解决现有技术中的问题,本发明提供了一种有效消除数据访问延迟的并行数据处理方法及并行处理器。
本发明提供了一种有效消除数据访问延迟的并行数据处理方法,包括如下步骤:把可并行处理数据分成若干工作组,针对每个工作组设置参数;启动多线程进行处理,每个线程处理一个工作项;若遇需到外部存储器访问的数据,则保存上下文,当前线程进行休眠等待,硬件切换到下一个线程并开展运算;等数据返回后通知休眠等待的线程进入随时切换等待,只要硬件资源释放出来,便可立即重新运算。
作为本发明的进一步改进,每个线程都配置有对应的通用寄存器。
本发明还提供了一种用于实现如上述中任一项所述有效消除数据访问延迟的并行数据处理方法的并行处理器,包括:
多个线程处理引擎:用于处理被分配给该线程处理引擎的线程,多个所述线程处理引擎并行连接;
线程管理单元:用于取得、判断所述线程处理引擎的状态,并将处于等待队列中的线程分配到所述线程处理引擎中,所述线程管理单元与所述线程处理引擎连接。
作为本发明的进一步改进,所述并行处理器还包括用于数据及线程缓冲、指令缓冲的内部存储***以及用于存储所述线程处理引擎的各种状态的寄存器,所述内部存储***、寄存器分别与所述线程处理引擎连接,内部存储***、寄存器分别与所述线程管理单元连接。
作为本发明的进一步改进,所述线程处理引擎、线程管理单元以及内部存储***通过***总线接口与外接或内置的通用处理器以及外部存储***相连。
作为本发明的进一步改进,所述线程处理引擎包括多个并行的、相互独立的算术逻辑运算单元以及与所述算术逻辑运算单元一一对应的乘加器单元。
作为本发明的进一步改进,所述内部存储***包括用于对所述数据进行缓冲的数据缓冲单元、对线程进行缓冲的线程缓冲单元以及对指令进行缓冲的指令缓冲单元,所述线程缓冲单元与所述数据缓冲单元连接,所述数据缓冲单元、指令缓冲单元,分别与所述***总线接口连接,所述数据缓冲单元分别与所述算术逻辑运算单元、线程管理单元连接,所述指令缓冲单元连接有指令取得单元,所述线程管理单元的输出端与所述指令取得单元连接,所述线程管理单元指令取得单元的输出连接有指令输出单元,所述指令输出单元的输出端分别与所述算术逻辑运算单元以及乘加器单元连接。
作为本发明的进一步改进,所述线程管理单元包括用于配置线程的线程控制寄存器,所述线程控制寄存器包括:用于表明任务程序的起始物理地址的起始程序指针寄存器,用于表明一个线程的线程本地存储区域的起始地址的本地存储区域起始基点寄存器,用于表明线程全局存储区域的起始地址的全局存储区域起始基点寄存器,用于表明一个线程工作组/工作项配置信息的线程配置寄存器组,以及用于表明一个线程的线程标识的配置寄存器。
作为本发明的进一步改进,所述线程管理单元依据线程的输入数据状态以及并行处理器的硬件资源来确定是否激活相应线程。
本发明还提供了一种有效消除数据访问延迟的并行数据处理方法,在上述中任一项所述的并行处理器中对线程进行并行处理,包括如下步骤:
a、配置所述并行处理器中的线程管理单元,分配各个线程的资源;
b、根据所述线程处理引擎的状态及待处理线程队列状态,将待处理线程队列中的线程送入所述线程处理引擎;
c、所述线程处理引擎处理送入的线程,使之运行;
所述步骤a进一步包括:
a1、配置该并行处理器运行程序的程序指针寄存器,配置并行处理器内各个线程的本地存储区域起始基点寄存器,配置并行处理器内线程的全局存储区域起始基点寄存器,配置并行处理器内各个线程的工作组/
工作项的线程配置寄存器组;
所述步骤b进一步包括:
b1、将待处理线程队列划分为多个组,每个组包含若干个线程,每个组组成一个1维多线程,若线程处理引擎存在空闲硬件计算资源,则把待处理线程的组一起送入所述线程处理引擎,多个空闲的组之间按轮询的机制进行调度;
所述步骤c进一步包括:
c1、线程处理引擎实现多级流水线设计,每个时钟都访问不同组的指令,若干时钟后回到访问最初组的下一条指令;
c2、线程处理引擎每级流水都同时传递着每个线程的线程标识,当线程处理引擎到达执行流水阶段时,如果数据加载与存储指令访问的地址没在数据缓存时,该组涉及到的多个线程均被调度出线程处理引擎,同时释放出该组占据的硬件时间片资源;
c3、当取值和执行阶段之间相隔达到设定时间时,每个组执行跳转指令时将会没有代价,也就达到最佳指令执行效率。
本发明的有益效果是:能较好的降低任务切换代价以及分支跳转代价,降低计算资源的浪费及能量的消耗。
附图说明
图1是本发明一种并行处理器的示意图。
图2是本发明一种并行处理器的线程分组示意图。
具体实施方式
下面结合附图说明及具体实施方式对本发明作进一步说明。
本发明提供一种新的有效消除数据访问延迟的并行数据处理方法和并行处理器,能实现最小任务切换代价,以及最小的分支跳转代价。
一种有效消除数据访问延迟的并行数据处理方法,包括如下步骤:把可并行处理数据分成若干WORKGROUP(工作组),针对每个WORKGROUP(工作组)设置必要的参数;启动多线程进行处理,每个线程处理一个WORKITEM(工作项);若遇需到外部存储器访问的数据,保存必要的上下文,当前线程进行休眠等待,硬件切换到下一个线程并开展运算;等数据返回后通知其线程进入随时切换等待,只要硬件资源释放出来,便可立即重新运算;每个线程都有自己的通用寄存器,运算逻辑则只有若干份,通过线程间的切换,去消除数据访问延迟。
本发明还提供一种实现上述方法的装置。实施本发明的有效消除数据访问延迟的方法及装置,具有以下有益效果:对大数据的并行处理效率高,有效消除数据访问延迟,上下文切换代价小,性能好,支持OpenCL(Open Computing Language,开放运算语言)通用并行计算接口。
构造一种并行处理器,包括:
多个线程处理引擎:用于处理被分配给该线程处理引擎的线程,所述多个线程处理引擎并行连接;
线程管理单元:用于取得、判断所述多个线程处理引擎的状态,并将处于等待队列中的线程分配到所述多个线程处理引擎中。
在本发明所述并行处理器中,还包括用于数据及线程缓冲、指令缓冲的内部存储***以及用于存储所述并行处理器的各种状态的寄存器。
在本发明所述并行处理器中,所述内部存储***包括用于对所述数据及线程进行缓冲的数据及线程缓冲单元以及对指令进行缓冲的指令缓冲单元。
在本发明所述并行处理器中,所述多个线程处理引擎包括4个并行的、相互独立的算术逻辑运算单元以及与所述算术逻辑运算单元一一对应的乘加器元。
在本发明所述并行处理器中,所述线程管理单元包括用于配置线程的线程控制寄存器,所述线程控制寄存器包括:用于表明任务程序的起始物理地址的起始程序指针寄存器,用于表明一个线程的线程本地存储区域的起始地址的本地存储区域起始基点寄存器,用于表明线程全局存储区域的起始地址的全局存储区域起始基点寄存器,用于表明一个线程工作组/工作项配置信息的线程配置寄存器组,以及用于表明一个线程的线程标识的配置寄存器等。
在本发明所述并行处理器中,所述线程管理单元依据线程的输入数据状态以及处理器的硬件资源来确定是否激活相应线程。
在本发明所述并行处理器中,所述线程处理引擎、线程管理单元以及内部存储***通过***总线接口与外接或内置的通用处理器以及外部存储***相连。
一种在并行处理器中对线程进行并行处理的方法,包括如下步骤:
a配置所述并行处理器中的线程管理单元,分配各个线程的资源;
b根据所述线程处理引擎的状态及待处理线程队列状态,将所述待处理线程队列中的线程送入所述线程处理引擎;
c所述线程处理引擎处理送入的线程,使之运行。
在本发明所述的方法中,所述步骤a进一步包括:
a1配置该并行处理器运行程序的程序指针寄存器,配置处理器内各个线程的本地存储区域起始基点寄存器,配置处理器内线程的全局存储区域起始基点寄存器,配置处理器内各个线程的工作组/工作项的线程配置寄存器组。
在本发明所述的方法中,所述步骤b进一步包括:
b1将待处理线程队列划分为多个组,每个组包含若干个线程。每个组组成一个horizontal threading(1D threading)(水平多线程,1维多线程)。若线程处理引擎存在空闲硬件计算资源,则把待处理线程组(包含若干个线程)一起送入所述线程处理引擎。多个空闲组之间按轮询的机制进行调度。
在本发明所述的方法中,所述步骤c进一步包括:
c1线程处理引擎实现多级流水线设计,每个时钟都访问不同组的指令,若干时钟后会回到访问最初组的下一条指令,其模式可归纳为(以4个时钟为一个循环周期为例)组0→组1→组2→组3→组0。每个循环周期形成一个vertical threading(2D threading)(垂直多线程,2维多线程)。
c2线程处理引擎每级流水都同时传递着每个线程的线程标识。当线程处理引擎到达EX(执行)流水阶段时,如果Load/Store(数据加载与存储)指令访问的地址没在数据缓存时(可能是该组中一个或多个线程的数据加载与存储指令),该涉及到的多个线程均会被调度出线程处理引擎,同时释放出该组占据的硬件时间片资源。这些组之间组成3Dthreading(3维多线程)。
c3当FE(取值)和EX(执行)阶段之间相隔至少4个时钟时,每个组执行Branch(跳转)指令时将会没有代价,也就达到最佳指令执行效率。
实施本发明的并行处理器及其线程处理方法,具有以下有益效果:利用并行处理器支持较多的硬件线程的特性,使用多个并行的算术逻辑单元及其对应的核内存储***,通过线程管理单元对该处理器要处理的线程进行管理,使得该多个算术逻辑单元可以实现满负荷运行,同时花费最小代价进行线程间上下文切换以及解决跳转指令的代价。因此,可以花费较小的代价来达到较高的性能,其性价比较高。
如图1所示,在本实施例中,该并行处理器是一个通用并行多线程处理器,所述处理器包括线程管理及控制单元1、指令取得单元2、指令输出单元3、算术逻辑单元(ALU)[3:0]4、乘加器(Multiply-Add unit,MAC)[3:0]5、特定功能单元6、寄存器7、指令缓冲单元8、数据缓冲单元91、线程缓冲单元92、***总线接口10;其中,线程管理及控制单元1用于管理、控制当前已准备好的线程、正在运行的线程等,其分别与***总线接口10、指令取得单元2等单元连接;指令取得单元2在上述线程管理及控制单元1的控制下,通过指令缓冲单元8及***总线接口10取得指令,并在线程管理及控制单元1的控制下将取得指令输出到指令输出单元3;指令输出单元3的输出通过并行的总线与上述算术逻辑单元[3:0]4、乘加器[3:0]5以及特定功能单元6连接,将取得指令中的操作码及操作数分别根据其需要传送到上述4个算术逻辑单元、4个乘加器以及特定功能单元6中;而上述算术逻辑单元[3:0]4、乘加器[3:0]5以及特定功能单元6还分别通过总线与寄存器7连接,便于将其中状态的变化情况及时写入上述寄存器7;数据缓冲单元91连接在上述***总线接口10上,其通过上述***总线接口10取得数据及指令,并存储起来,供其单元访问。在本实施例中,一个线程处理引擎包括一个算术逻辑单元和一个乘加器。在本实施例中,并行处理器包括4个在硬件上并行的线程处理引擎,1个8KByte(字节)的指令缓存单元,1个2KByte(字节)的数据缓存单元,以及1个32KByte(字节)的线程缓存单元,以及1个线程管理单元。
该并行处理器可以作为一个带有软件驱动层的OpenCL(开放运算语言)设备,单个处理器支持OpenCL(开放运算语言)定义的数据并行计算模式,多个处理器支持OpenCL(开放运算语言)定义的任务并行计算模式。在处理数据并行计算模式时,处理器核在一个工作组中能够最多处理64个工作项,这64个工作项根据硬件资源状态及时间片分配,被映射到处理器核4个并行的线程处理引擎。在处理任务并行计算模式时,不同处理器核同时处理不同的计算任务。
在本实施例中,每个组包含4条线程(T0,T1,T2,T3),该组作为一个整体,在线程处理引擎对应时间片段执行。假定T0~T3执行的都是同一条指令,这对数据并行计算模式大部分情况都是成立的;倘若遇到跳转指令后,组内线程执行不同指令,线程处理引擎会相应的处理,若指令取得单元访问指令缓存单元的4个PC(Program Counter,指令计数器)地址分布在不同缓存BANK(块),则依然可以在单个时钟周期内完成取值、执行操作,否则需要相应时钟周期来处理该组的各个线程。如图2所示的实施例中是以4个时钟为一个Round(Vertical threading)(循环周期,垂直多线程),详细呈现了不同时钟片的执行情况。
在本实施例中,若一个组内的线程访问数据缓存单元时遇到所需数据不在数据缓存单元内,则该组会被集体移出线程处理引擎,等待数据缓存单元将所需数据从外部存储读回数据缓存单元。在该组被移出线程处理引擎的同时,线程管理单元将处于等待状态的组送入线程处理引擎相对应的时钟片。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种有效消除数据访问延迟的并行数据处理方法,其特征在于:包括如下步骤:把可并行处理数据分成若干工作组,针对每个工作组设置参数;启动多线程进行处理,每个线程处理一个工作项;若遇需到外部存储器访问的数据,则保存上下文,当前线程进行休眠等待,硬件切换到下一个线程并开展运算;等数据返回后通知休眠等待的线程进入随时切换等待,只要硬件资源释放出来,便可立即重新运算。
2.根据权利要求1所述的有效消除数据访问延迟的并行数据处理方法,其特征在于:每个线程都配置有对应的通用寄存器。
3.一种用于实现如权利要求1或2中任一项所述有效消除数据访问延迟的并行数据处理方法的并行处理器,其特征在于:包括:
多个线程处理引擎:用于处理被分配给该线程处理引擎的线程,多个所述线程处理引擎并行连接;
线程管理单元:用于取得、判断所述线程处理引擎的状态,并将处于等待队列中的线程分配到所述线程处理引擎中,所述线程管理单元与所述线程处理引擎连接。
4.根据权利要求3所述的并行处理器,其特征在于:所述并行处理器还包括用于数据及线程缓冲、指令缓冲的内部存储***以及用于存储所述线程处理引擎的各种状态的寄存器,所述内部存储***、寄存器分别与所述线程处理引擎连接,内部存储***、寄存器分别与所述线程管理单元连接。
5.根据权利要求4所述的并行处理器,其特征在于:所述线程处理引擎、线程管理单元以及内部存储***通过***总线接口与外接或内置的通用处理器以及外部存储***相连。
6.根据权利要求5所述的并行处理器,其特征在于:所述线程处理引擎包括多个并行的、相互独立的算术逻辑运算单元以及与所述算术逻辑运算单元一一对应的乘加器单元。
7.根据权利要求6所述的并行处理器,其特征在于:所述内部存储***包括用于对所述数据进行缓冲的数据缓冲单元、对线程进行缓冲的线程缓冲单元以及对指令进行缓冲的指令缓冲单元,所述线程缓冲单元与所述数据缓冲单元连接,所述数据缓冲单元、指令缓冲单元,分别与所述***总线接口连接,所述数据缓冲单元分别与所述算术逻辑运算单元、线程管理单元连接,所述指令缓冲单元连接有指令取得单元,所述线程管理单元的输出端与所述指令取得单元连接,所述线程管理单元指令取得单元的输出连接有指令输出单元,所述指令输出单元的输出端分别与所述算术逻辑运算单元以及乘加器单元连接。
8.根据权利要求3所述的并行处理器,其特征在于:所述线程管理单元包括用于配置线程的线程控制寄存器,所述线程控制寄存器包括:用于表明任务程序的起始物理地址的起始程序指针寄存器,用于表明一个线程的线程本地存储区域的起始地址的本地存储区域起始基点寄存器,用于表明线程全局存储区域的起始地址的全局存储区域起始基点寄存器,用于表明一个线程工作组/工作项配置信息的线程配置寄存器组,以及用于表明一个线程的线程标识的配置寄存器。
9.根据权利要求3所述的并行处理器,其特征在于:所述线程管理单元依据线程的输入数据状态以及并行处理器的硬件资源来确定是否激活相应线程。
10.一种有效消除数据访问延迟的并行数据处理方法,其特征在于:在权利要求3至9中任一项所述的并行处理器中对线程进行并行处理,包括如下步骤:
a、配置所述并行处理器中的线程管理单元,分配各个线程的资源;
b、根据所述线程处理引擎的状态及待处理线程队列状态,将待处理线程队列中的线程送入所述线程处理引擎;
c、所述线程处理引擎处理送入的线程,使之运行;
所述步骤a进一步包括:
a1、配置该并行处理器运行程序的程序指针寄存器,配置并行处理器内各个线程的本地存储区域起始基点寄存器,配置并行处理器内线程的全局存储区域起始基点寄存器,配置并行处理器内各个线程的工作组/工作项的线程配置寄存器组;
所述步骤b进一步包括:
b1、将待处理线程队列划分为多个组,每个组包含若干个线程,每个组组成一个1维多线程,若线程处理引擎存在空闲硬件计算资源,则把待处理线程的组一起送入所述线程处理引擎,多个空闲的组之间按轮询的机制进行调度;
所述步骤c进一步包括:
c1、线程处理引擎实现多级流水线设计,每个时钟都访问不同组的指令,若干时钟后回到访问最初组的下一条指令;
c2、线程处理引擎每级流水都同时传递着每个线程的线程标识,当线程处理引擎到达执行流水阶段时,如果数据加载与存储指令访问的地址没在数据缓存时,该组涉及到的多个线程均被调度出线程处理引擎,同时释放出该组占据的硬件时间片资源;
c3、当取值和执行阶段之间相隔达到设定时间时,每个组执行跳转指令时将会没有代价,也就达到最佳指令执行效率。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110064248.4A CN112732416B (zh) | 2021-01-18 | 2021-01-18 | 有效消除数据访问延迟的并行数据处理方法及并行处理器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110064248.4A CN112732416B (zh) | 2021-01-18 | 2021-01-18 | 有效消除数据访问延迟的并行数据处理方法及并行处理器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112732416A true CN112732416A (zh) | 2021-04-30 |
CN112732416B CN112732416B (zh) | 2024-03-26 |
Family
ID=75592250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110064248.4A Active CN112732416B (zh) | 2021-01-18 | 2021-01-18 | 有效消除数据访问延迟的并行数据处理方法及并行处理器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112732416B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221493A (zh) * | 1999-08-31 | 2008-07-16 | 英特尔公司 | 并行处理器中的多线程执行 |
CN101739242A (zh) * | 2009-11-27 | 2010-06-16 | 宇盛通信科技(深圳)有限公司 | 一种流数据处理方法及流处理器 |
CN101763285A (zh) * | 2010-01-15 | 2010-06-30 | 西安电子科技大学 | 零开销切换多线程处理器及其线程切换方法 |
CN102023844A (zh) * | 2009-09-18 | 2011-04-20 | 深圳中微电科技有限公司 | 并行处理器及其线程处理方法 |
CN109408118A (zh) * | 2018-09-29 | 2019-03-01 | 古进 | Mhp异构多流水线处理器 |
US20190306087A1 (en) * | 2018-03-28 | 2019-10-03 | Apple Inc. | Methods and apparatus for dynamic packet pool configuration in networking stack infrastructures |
CN111339207A (zh) * | 2020-03-20 | 2020-06-26 | 宁夏菲麦森流程控制技术有限公司 | 一种多类型数据库之间同步数据的方法 |
CN112835713A (zh) * | 2021-01-28 | 2021-05-25 | 交通银行股份有限公司 | 一种基于多容器集群的工作负载组合统一部署方法及*** |
-
2021
- 2021-01-18 CN CN202110064248.4A patent/CN112732416B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101221493A (zh) * | 1999-08-31 | 2008-07-16 | 英特尔公司 | 并行处理器中的多线程执行 |
CN102023844A (zh) * | 2009-09-18 | 2011-04-20 | 深圳中微电科技有限公司 | 并行处理器及其线程处理方法 |
CN101739242A (zh) * | 2009-11-27 | 2010-06-16 | 宇盛通信科技(深圳)有限公司 | 一种流数据处理方法及流处理器 |
CN101763285A (zh) * | 2010-01-15 | 2010-06-30 | 西安电子科技大学 | 零开销切换多线程处理器及其线程切换方法 |
US20190306087A1 (en) * | 2018-03-28 | 2019-10-03 | Apple Inc. | Methods and apparatus for dynamic packet pool configuration in networking stack infrastructures |
CN109408118A (zh) * | 2018-09-29 | 2019-03-01 | 古进 | Mhp异构多流水线处理器 |
CN111339207A (zh) * | 2020-03-20 | 2020-06-26 | 宁夏菲麦森流程控制技术有限公司 | 一种多类型数据库之间同步数据的方法 |
CN112835713A (zh) * | 2021-01-28 | 2021-05-25 | 交通银行股份有限公司 | 一种基于多容器集群的工作负载组合统一部署方法及*** |
Non-Patent Citations (4)
Title |
---|
容晓峰;苏锐丹;刘平;周利华;: "时间戳服务器并行数据处理的设计与实现", 计算机工程, no. 16 * |
王传福;周学海;: "提高硬件多线程处理器性能的方法", 计算机工程, no. 04 * |
苏年乐;周鸿伟;李群;王维平;: "SMP2仿真引擎的多核并行化", 宇航学报, no. 07, 30 July 2010 (2010-07-30) * |
谢建春;: "GPU通用计算软硬件处理架构研究", 航空计算技术, no. 02 * |
Also Published As
Publication number | Publication date |
---|---|
CN112732416B (zh) | 2024-03-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102023844B (zh) | 并行处理器及其线程处理方法 | |
EP1839146B1 (en) | Mechanism to schedule threads on os-sequestered without operating system intervention | |
US8046775B2 (en) | Event-based bandwidth allocation mode switching method and apparatus | |
CN101739242B (zh) | 一种流数据处理方法及流处理器 | |
RU2427895C2 (ru) | Оптимизированная для потоков многопроцессорная архитектура | |
JP4292198B2 (ja) | 実行スレッドをグループ化するための方法 | |
EP2179350B1 (en) | Compound instructions in a multi-threaded processor | |
US20050125793A1 (en) | Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment | |
KR20180053359A (ko) | 다중-버전형 태스크들의 효율적 스케줄링 | |
CN103197916A (zh) | 用于源操作数收集器高速缓存的方法和装置 | |
CN110308982B (zh) | 一种共享内存复用方法及装置 | |
US8595747B2 (en) | Efficient task scheduling by assigning fixed registers to scheduler | |
EP3975061A1 (en) | Neural network processor, chip and electronic device | |
JP2009238197A (ja) | 共有メモリの制御回路、制御方法及び制御プログラム | |
EP1760581A1 (en) | Processing operations management systems and methods | |
EP1760580B1 (en) | Processing operation information transfer control system and method | |
WO2005048009A2 (en) | Method and system for multithreaded processing using errands | |
EP2282265A1 (en) | A hardware task scheduler | |
CN109388429B (zh) | Mhp异构多流水线处理器的任务分发方法 | |
US7617494B2 (en) | Process for running programs with selectable instruction length processors and corresponding processor system | |
CN109408118B (zh) | Mhp异构多流水线处理器 | |
US20110247018A1 (en) | API For Launching Work On a Processor | |
CN112732416B (zh) | 有效消除数据访问延迟的并行数据处理方法及并行处理器 | |
CN108845969B (zh) | 适用于不完全对称多处理微控制器的操作控制方法及操作*** | |
CN117501254A (zh) | 使用近存储器计算为复杂操作提供原子性 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |