CN102520916B - 在mvp处理器中消除纹理延迟和寄存器管理的方法 - Google Patents
在mvp处理器中消除纹理延迟和寄存器管理的方法 Download PDFInfo
- Publication number
- CN102520916B CN102520916B CN201110384569.9A CN201110384569A CN102520916B CN 102520916 B CN102520916 B CN 102520916B CN 201110384569 A CN201110384569 A CN 201110384569A CN 102520916 B CN102520916 B CN 102520916B
- Authority
- CN
- China
- Prior art keywords
- thread
- mvp
- processor
- texture
- register
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 107
- 238000007726 management method Methods 0.000 claims abstract description 21
- 230000008569 process Effects 0.000 claims description 68
- 244000045947 parasite Species 0.000 claims description 42
- 230000006870 function Effects 0.000 claims description 31
- 230000011218 segmentation Effects 0.000 claims description 4
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 claims description 2
- 230000009286 beneficial effect Effects 0.000 abstract description 2
- 238000004040 coloring Methods 0.000 abstract 3
- 238000010586 diagram Methods 0.000 description 6
- 101000868440 Homo sapiens Sorting nexin-8 Proteins 0.000 description 3
- 208000012513 MVP1 Diseases 0.000 description 3
- 102100032848 Sorting nexin-8 Human genes 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000007850 degeneration Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and 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/507—Low-level
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本发明涉及一种在MVP处理器中消除纹理延迟的方法,包括如下步骤:MVP处理器开始运行渲染主程序;将MVP处理器中各MVP内核的寄存器按照设定的长度进行分段,得到多个长度相同的寄存器组,并将所述寄存器组在所述内核开始时绑定在所述内核;着色线程发出纹理细节请求后,让出其占有的处理时隙,并设置返回时的程序计数器;纹理细节返回,所述着色线程重新开始运行。本发明还涉及一种在MVP处理器中用于图像处理线程的寄存器管理方法。实施本发明的在MVP处理器中消除纹理延迟和寄存器管理的方法,具有以下有益效果:在实现GPU功能时资源及能量较为节省、处理器性能不会退化。
Description
技术领域
本发明涉及处理器领域,更具体地说,涉及一种在MVP处理器(MVP:Multi thread Virtual Pipeline,多线程虚拟流水线;MVP处理器是带有MVP核的处理器)中消除纹理延迟和寄存器管理的方法。
背景技术
在中国专利号为:201110088661.0,名为一种实现中央处理器和图形处理器功能的多线程处理器及方法的专利申请中,揭示了一种能够实现CPU和GPU功能的MVP处理器,其对图像的处理由于专门的硬件图像处理部分和混用的CPU和GPU线程而变得对图像处理较为有效率。但是,在上述的处理器中,当进行图像处理时,特别是运行着色线程(shader thread)时,一旦涉及纹理细节,线程同样需要向MVP核之外的纹理单元发出请求,并等待该纹理单元返回数据;而纹理单元通常会向外界的内存要求数据并进行处理,之后将数据返回发出要求的线程。在这个过程中,该线程等待数据返回。由于该线程在运行中,所以在等待过程中,该线程实际占据了内核的处理时隙而未做出动作。这导致了资源的浪费及能量的消耗。由于上述数据的返回时间较长,通常会导致该线程的延迟非常长,甚至可能导致着色线程的停滞。这种停滞减小了可编程的统一着色流水线的效率并导致了处理器的性能的退化。
发明内容
本发明要解决的技术问题在于,针对现有技术的上述在实现GPU功能时可能出现的资源及能量较为浪费、延迟较长缺陷,提供一种在实现GPU功能时资源及能量较为节省、处理器性能不会退化的在MVP处理器中消除纹理延迟和寄存器管理的方法。
本发明解决其技术问题所采用的技术方案是:构造一种在MVP处理器中消除纹理延迟的方法,包括如下步骤:
A)MVP处理器开始运行渲染主程序,对执行渲染处理的所有线程关闭硬件中断使能,禁止其硬件中断;
B)将MVP处理器中各MVP硬件核的寄存器按照设定的长度进行分段,得到多个长度相同的寄存器组,并将所述寄存器组绑定在所述MVP的内核;
C)着色线程(shader thread)发出纹理细节请求后,让出其占有的处理时隙(也就是MVP处理器的处理引擎或者说是处理引擎及其占用处理器的时隙)给等待队列中准备好的线程运行,并设置返回时的程序计数器值;
D)纹理细节返回,所述着色线程等待空闲的处理时隙并在所述程序计数器值所指向处重新开始运行。
在本发明所述的一种在MVP处理器中消除纹理延迟的方法中,所述步骤B)中进一步包括:
B1)将所述MVP核内的128个寄存器分别以16个为一段分组;
B2)所述寄存器组在所述线程建立并首次发射到等待队列时按照执行CPU功能的内核分配两组而着色线程分配一组的规则配置到所述线程。
在本发明所述的一种在MVP处理器中消除纹理延迟的方法中,所述MVP处理器包括至少一个硬件核,所述步骤B1)中将所述至少一个硬件核中的寄存器分别分组。
在本发明所述的一种在MVP处理器中消除纹理延迟的方法中,所述步骤B2)中包括:所述线程建立时通过硬件将所述寄存器段的初始地址和所述线程识别码(线程ID)绑定在一起。
在本发明所述的一种在MVP处理器中消除纹理延迟的方法中,所述着色线程运行时使用所述线程识别码访问所述与该线程绑定的寄存器组。
在本发明所述的一种在MVP处理器中消除纹理延迟的方法中,所述步骤C)中,进一步包括:
C1)所述着色线程发出纹理细节请求;
C2)所述着色线程及其绑定的寄存器端一起退出处理器的处理时隙; C3)排在待运行队列中的第一个线程取得所述处理时隙并开始运行。
在本发明所述的一种在MVP处理器中消除纹理延迟的方法中,所述步骤D)进一步包括:
D1)由设置在所述MVP核外的纹理单元取得所述要求的纹理细节并通过所述着色线程的线程识别码将其存储在所述MVP内核的内存中;
D2)所述纹理单元通知所述着色线程该纹理请求的状态,所述着色线程取得所述程序计数器值,等待所述处理时隙出现空闲;
D3)所述着色线程在所述空闲的处理时隙上由所述程序计数器值指向的程序处开始重新运行。
本发明还涉及一种在MVP处理器中用于图像处理线程的寄存器管理方法,所述线程包括在线程建立时配置的寄存器,所述寄存器管理方法包括如下步骤:
M)将MVP处理器中事先分组的寄存器以组的方式整体绑定到内核(kernel),并在所述内核(kernel)形成的线程(thread)完成之前保持所述寄存器组与所述线程的从属关系;
N)所述线程运行完毕后,所述寄存器组作为一个整体释放回所述MVP处理器。
在本发明所述的在MVP处理器中用于图像处理线程的寄存器管理方法中,所述线程建立并首次发射到等待队列时通过硬件将所述寄存器组的地址和所述MVP处理器赋予所述线程的线程识别码绑定在一起。
在本发明所述的在MVP处理器中用于图像处理线程的寄存器管理方法中,所述着色线程运行时使用所述线程识别码访问所述与该线程绑定的寄存器。
实施本发明的在MVP处理器中消除纹理延迟和寄存器管理的方法,具有以下有益效果:由于在等待外部硬件返回纹理细节时,将着色线程及其绑定的寄存器暂停且将处理时隙让给队列中的其他线程,而在细节返回时将数据直接写入到上述着色线程的内存中,并在处理时隙空出时开始重新运行该着色线程。所以,其有效利用了纹理细节的等待时间且不需要重新建立线程,从而在实现GPU功能时资源及能量较为节省、处理器性能不会退化。
附图说明
图1是本发明在MVP处理器中消除纹理延迟和寄存器管理的方法实施例中MVP处理器的结构示意图;
图2是所述实施例中消除纹理延迟的方法流程图;
图3是所述实施例中寄存器分组及绑定线程的流程图;
图4是所述实施例中线程让出处理时隙的流程图;
图5是所述实施例中线程重新运行的流程图;
图6是所述实施例中着色线程的数据传输示意图。
具体实施方式
下面将结合附图对本发明实施例作进一步说明。
如前所述,本发明实施例是在一个MVP处理器上实现的消除纹理延迟和寄存器管理的方法,而该MVP处理器如图1所示,该MVP处理器是实现中央处理器和图形处理器功能的多线程处理器,该多线程处理器包括图形固定功能处理模块11、多线程并行中央处理模块和存储模块;在图1中多线程并行中央处理模块包括两个MVP(Multi thread Virtual Pipeline)核,即MVP0 12和MVP1 13;而存储模块包括图1中的L2缓存14和DDR2 15,这些存储器通过总线与上述图形固定功能处理模块11及多线程并行处理模块连接,用于为图形固定功能处理模块11和多线程并行中央处理模块提供统一的储存空间进行数据的存储、缓冲或/和交互;而图形固定功能处理模块11用于图形处理中数据的固定功能处理;多线程并行中央处理模块则用于通过统一的线程调度实现程序处理功能和图形处理中的数据的可编程处理功能,并将已经过可编程处理功能的图形数据通过存储模块(具体来讲,是通过L2缓存14)与图形固定功能处理模块11进行交互。此外,上述图形固定功能处理模块11是独立于上述MVP核(12、13)的硬件结构。关于该MVP处理器的更具体的结构及操作细节,请参见中国专利号为:201110088661.0,名为一种实现中央处理器和图形处理器功能的多线程处理器及方法的专利文件,在此不再赘述。
如图2所示,在本实施例中,由于在实现GPU功能时需要运行着色线程,而着色线程需要对上述图形固定功能处理模块11提出纹理细节请求,并在等待该纹理细节返回是进入等待状态,进而带来资源及能量的浪费以及处理器性能的退化。为此,采用对上述两个内核(MVP0和MVP1)中的寄存器进行管理并对线程队列进行调配的方法来消除上述缺陷,具体步骤如下:
步骤S21运行渲染主程序,并对其中线程关中断:在本步骤中,MVP处理器开始运行渲染主程序,对执行渲染处理的所有线程关闭中断使能,禁止其中断。也就是说,本步骤就是在MVP处理器中进入了统一渲染构架进行图形处理;在MVP处理器中除了留出一部分处理器资源用于CPU功能外,其余处理器资源都会用于GPU功能中的渲染处理。这部分资源用于运行实现GPU功能的线程。而在这些线程中,不允许中断的出现,为此,在本实施例中,在进入同一渲染功能构架的时候,就将这些实现GPU功能的线程禁止,使其在运行过程中不会被中断。
步骤S22对处理器硬件核中的寄存器分组,并在线程建立并首次发射时将一组寄存器绑定到一个线程:在本步骤中,将MVP处理器中各MVP核的寄存器按照设定的长度进行分段,得到多个长度相同的寄存器组,并将得到的寄存器组在所述线程建立时绑定在所述线程;当然一般来讲,在线程建立并被发射到等待队列时,一个寄存器组被绑定在上述线程;而在线程运行过程中,该寄存器组与线程之间的关系是不会改变的;在线程运行过程中,着色线程使用线程识别码访问所述与该线程绑定的寄存器或寄存器组;当该线程结束时,该寄存器组仍然以一个寄存器组的方式被释放,等待被绑定在下一个线程上。关于MVP处理器中的核及其内部的寄存器具体的分段方法,在稍后有较为详细的描述。在本步骤中,一个较为关键的特点是,所有寄存器组的长度是同样的、事先设定的(留出用于CPU功能的那部分寄存器除外)。
步骤S23发出纹理请求,设置返回程序计数器值并让出处理时隙:在本步骤中,着色线程发出纹理细节请求后,设置其返回的指令点,即设置其返回的程序计数器(PC)值,之后,该着色线程让出其占有的处理时隙给等待队列中准备好的线程运行;在本步骤中,上述着色线程是在同一渲染架构下的一种线程,其向MVP处理器的纹理单元发出上述纹理请求,要求纹理细节;上述纹理单元是位于MVP核外的一个独立的硬件结构;而上述等待队列中的准备好的线程实际上也是在同一渲染构架下的其他线程,这些线程同样是用于实现GPU功能的,也就是说,这些等待运行的线程同样是用于图像处理的线程。而上述着色线程虽然让出处理时隙,但是,其线程与绑定的寄存器组的关系仍然存在并有效,寄存器组并没有被释放,其中的数据仍然是存在的。
步骤S24纹理细节返回,在空闲的处理时隙及返回程序计数器值指向位置开始运行线程:在本步骤中,当纹理细节数据由纹理单元返回时,这些数据被直接存入上述绑定在线程上的内存;当这些数据存入后,该着色线程开始等待空闲的处理时隙,一旦空闲的处理时隙出现,该线程就在上述程序计数器值所指向的指令处重新开始运行,也就是有上述程序计数器值指向的指令开始运行。值得一提的是,在本步骤中,当空闲处理时隙出现时,运行的并不是等待队列中的线程,而是上述的、在某种意义上说是挂起且接收到纹理细节的着色线程。
在本实施例中,对于上述步骤而言,还可以进一步细化已达到更好的操作效果或更适于在MVP处理器中应用,例如,寄存器组的形成、处理时隙的让出等等。下面就几个较为重要的步骤进一步描述,如图3所示,上述步骤S22进一步包括:
步骤S31将处理器每个硬件核中的寄存器分别按照16个为一段分组:正如前面所述,在本实施例是在MVP处理器上实现的。在本实施例中,该MVP处理器包括了两个硬件核,MVP0和MVP1,每个硬件核各有32bit的寄存器128个(关于处理器内核及寄存器的结构,请参见中国专利号为:201110088661.0,名为一种实现中央处理器和图形处理器功能的多线程处理器及方法的专利文件)。在本实施例中,上述寄存器的分配是将所述MVP硬件核内的128个寄存器分别以16个为一段分组。当对上述寄存器组进行分配时,如果一个内核(kernel)执行的CPU功能,则该内核将被分配两组寄存器,而着色线程将被分配一组寄存器。这样,当MVP处理器内所有的8个内核都在执行CPU功能时,128个寄存器只能分配到4个内核,剩余的4个内核要求等到分配到寄存器组的内核运行完成并释放寄存器组时,才能分配到寄存器组并运行;而当MVP内所有的8个内核都在是着色器(Shader)时,128个寄存器则可够8个内核. 因此,这8个着色器(shader)内核被动态地激活并成为MVP的4个线程开始运行时,它们既不需要等待别的内核释放寄存器组,而且由于其绑定的寄存器组,当其在运行中停止或再次重入时,也不需要对寄存器组中的内容进行内容备份(context backup)和内容重载(context restore)。值得一提的是,在本实施例中,线程(thread)的建立就是将上述MVP内核(kernel)及其相关数据(包括渲染器shader的配置)配置到空闲的处理器时隙或处理引擎中,使得处理器(更具体而言是处理时隙或引擎)可以按照设定的渲染功能对数据进行处理。从这个角度而言,上述分组后的寄存器组既可以说绑定在内核(kernel)上的,也可以说是绑定在线程(thread)上的,这种特性使得线程在暂停或重入时能够减少许多动作,进而节省操作时间及处理器资源。
步骤S32在建立线程并首次发射时,通过硬件赋予线程识别码及已分组的寄存器起始地址:在MVP处理器中,当线程建立时,由于MVP处理器的特性,将给建立的线程配置一定的寄存器,以实现其本地存取的性能,进而减少数据在处理器内核中的传输并达到降低能耗、加快处理速度的目的。在本步骤中也不例外,但不同的是,处理器通过硬件将线程识别码(即线程ID)和已经分组的寄存器的起始地址(base address)绑定在一起,并通过指令通知该线程,从而将将该地址上的寄存器组配置到该线程。同时,在该线程没有运行完毕时,该寄存器组不会被该线程释放,也就是该寄存器组在线程存在期间一直属于该线程专有。在本实施例中,上述线程是在统一渲染构架下的线程,用于处理图像数据,而用于处理CPU功能的线程则不具有该特性。
而在步骤S23中,如图4所示,又进一步包括:
步骤S41着色线程发出纹理请求:在本步骤中,由于着色线程的需要,其向外部的纹理单元发出纹理请求,要求外部的纹理单元返回纹理细节。
步骤S42着色线程设置返回的程序计数器值,并与其绑定的寄存器一起让出处理时隙:当上述请求发出后,着色线程开始设置返回的程序计数器值,便于在返回时延续运行;当上述程序计数器值设置好后,该着色线程让出所占用的处理时隙。也就是说,在本步骤中,在某种意义上来说,着色线程在本来应该占用处理时隙等待的时候,与其配置的本地寄存器一起被挂起,让出了处理时隙。此时,该寄存器组中的内容没有被清空,而是一直被保持,所以在线程重入时,也不需要重新取得该寄存器组中的这些数据。这是本实施例中一个特点,能够减少操作时间并节省资源。
步骤S43等待运行线程队列中的第一个线程在该处理时隙上运行:由于上述步骤中着色线程让出了处理时隙,在本步骤中,至少出现了一个空闲的处理时隙,为此,按照MVP处理器的规定,在等待运行的线程队列中取出一个线程并使其使用该处理时隙,通常,这个线程是排列在该队列的第一个线程。在本实施例中,上述等待运行的队列中的线程同样是在统一渲染架构下的图形处理线程。所以,在本实施例中,可能会出现不止一个着色线程让出处理时隙的情况,也就是说,在同一时间上,会出现多个着色线程及配置给该线程的本地寄存器被挂起。
此外,在上述步骤S24中,如图5所示,又进一步包括:
步骤S51纹理细节返回并写入内存:在本步骤中,被要求的纹理细节数据由外部的纹理单元返回,这些数据返回时直接存入与该着色线程绑定的寄存器内。由于该线程在发出请求时将其线程ID通知了纹理单元,所以在纹理数据返回时,纹理单元直接使用该线程ID将纹理数据存储在该MVP核的内部存储器之中,与其他数据一样,这些数据也是通过L2 缓存存入的。同时线程与寄存器之间绑定的关系使得该着色线程在重入是也不需要处理器再次为其重载(restore)本地的寄存器,这使得该着色线程处理完成的时间得到较大幅度的缩短,从而提高了效率并节省了能源。
步骤S52该着色线程取得返回程序计数器值并等待空闲的处理时隙:在本步骤中,得到纹理数据的照射线程取出在步骤S42中设置的PC值,找到其对应的指令,并等待空闲的处理时隙。值得一提的是,在本步骤中,上述着色线程并没有进入通常的等候运行的队列,而是单独存在的,只要一有空闲的处理时隙,就会开始重新运行。也就是说,其优先级高于上述等待运行的线程队列中的线程。当然,在其他实施例中,也可以将其排列在队列中等待,但是,这可能会带来着色线程的完成时间较长的问题。
步骤S53该着色线程从程序计数器值指向位置在空闲的处理时隙上开始重新运行:在本步骤,该着色线程开始重新运行。
图6示出了本实施例中统一渲染构架下的着色线程的数据流向或该着色线程在统一渲染构架上的一个大致上的示意图。在图6中,如果一个着色线程在未提出纹理请求时,其处于图6中的统一渲染构架位置;当其提出纹理请求并让出处理时隙后,其处于图6中的混合程序调度位置,注意,此时与其绑定的寄存器(图6中的混合寄存器文件)仍保持与该线程的关系,见图6中的虚线;同时,纹理请求向纹理单元提出,纹理单元向外接的主存储器取得纹理数据;当纹理数据取得后,纹理单元通过tex.status信号通知统一渲染处理架构纹理细节的状态,使得统一渲染处理架构纹得知该纹理处理细节已取得并通过纹理单元、L2 cache写入统一渲染构架,按照MVP所特有的直接存储到该处理器核的内存中;之后,该着色线程在得到空闲的处理时隙后返回统一渲染构架处。
在本实施例中,还涉及一种在MVP处理器中用于图像处理线程的寄存器管理方法,所述线程包括在线程建立时配置的寄存器,所述寄存器管理方法包括如下步骤:将MVP处理器中事先分组的寄存器以组的方式整体绑定到所述线程,并在所述线程完成之前保持所述寄存器组与所述线程的从属关系;所述线程运行完毕后,所述寄存器组作为一个整体释放回所述MVP处理器。所述线程建立时通过硬件将所述寄存器组的起始地址(base address)和所述MVP处理器赋予所述线程的线程识别码绑定在一起。所述着色线程运行时使用所述线程识别码访问所述与该线程绑定的寄存器。
也就是说,上述在MVP处理器中用于图像处理线程的寄存器管理方法实际上就是上述消除纹理延迟中的寄存器管理方法,关于其具体内容可以参考上面的描述,但是,该寄存器管理方法又不仅仅局限与纹理处理或着色线程,实际上,只要是需要向外部(即处理器硬件核的外部)要求数据,等待时间又较长的图形处理线程,均可以使用该寄存器的管理方法。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (8)
1.一种在MVP处理器中消除纹理延迟的方法,其特征在于,包括如下步骤:
A)MVP处理器开始运行渲染主程序,对执行渲染处理的所有线程关闭硬件中断使能,禁止其硬件中断;
B)将MVP处理器中各MVP硬件核的寄存器按照设定的长度进行分段,得到多个长度相同的寄存器组,并将所述寄存器组绑定在所述MVP的内核;所述寄存器组在所述线程建立并首次发射到等待队列时按照执行CPU功能的内核分配两组而着色线程分配一组的规则配置到所述线程;
C)着色线程发出纹理细节请求后,让出其占有的处理时隙给等待队列中准备好的线程运行;
D)纹理细节返回,所述着色线程等待空闲的处理时隙并在程序计数器值所指向处重新开始运行。
2.根据权利要求1所述的在MVP处理器中消除纹理延迟的方法,其特征在于,所述步骤B)中将所述MVP核内的128个寄存器分别以16个为一段分组。
3.根据权利要求2所述的在MVP处理器中消除纹理延迟的方法,其特征在于,所述MVP处理器包括至少一个硬件核,所述步骤B)中将所述至少一个硬件核中的寄存器分别分组。
4.根据权利要求3所述的在MVP处理器中消除纹理延迟的方法,其特征在于,所述步骤B)中包括:所述线程建立时通过硬件将所述寄存器组的起始地址和线程识别码绑定在一起。
5.根据权利要求4所述的在MVP处理器中消除纹理延迟的方法,其特征在于,所述着色线程运行时使用所述线程识别码访问所述与该线程绑定的寄存器组。
6.根据权利要求5所述的在MVP处理器中消除纹理延迟的方法,其特征在于,所述步骤C)中,进一步包括:
C1)所述着色线程发出纹理细节请求;
C2)所述着色线程及其绑定的寄存器端一起退出处理器的处理时隙;
C3)排在待运行队列中的第一个线程取得所述处理时隙并开始运行。
7.根据权利要求6所述的在MVP处理器中消除纹理延迟的方法,其特征在于,所述步骤D)进一步包括:
D1)由设置在所述MVP核外的纹理单元取得要求的纹理细节并通过所述着色线程的线程识别码将其存储在所述MVP内核的内存中;
D2)所述纹理单元通知所述着色线程该纹理请求的状态,所述着色线程取得所述程序计数器的值,等待所述处理时隙出现空闲;
D3)所述着色线程在所述空闲的处理时隙上由所述程序计数器的值指向的程序处开始重新运行。
8.一种在MVP处理器中用于图像处理线程的寄存器管理方法,所述线程包括在线程建立时配置的寄存器,其特征在于,所述寄存器管理方法包括如下步骤:
M)将MVP处理器中事先分组的寄存器以组的方式整体绑定到内核,并在所述内核形成的线程完成之前保持所述寄存器组与所述线程的从属关系;
N)所述线程运行完毕后,所述寄存器组作为一个整体释放回所述MVP处理器;
其中,所述线程建立并首次发射到等待队列时通过硬件将所述寄存器组的地址和所述MVP处理器赋予所述线程的线程识别码绑定在一起;
着色线程运行时使用所述线程识别码访问所述与该线程绑定的寄存器。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110384569.9A CN102520916B (zh) | 2011-11-28 | 2011-11-28 | 在mvp处理器中消除纹理延迟和寄存器管理的方法 |
PCT/CN2011/084017 WO2013078733A1 (zh) | 2011-11-28 | 2011-12-14 | 在mvp处理器中消除纹理延迟和寄存器管理的方法 |
US13/699,658 US9613389B2 (en) | 2011-11-28 | 2011-12-14 | Method for hiding texture latency and managing registers on a processor |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110384569.9A CN102520916B (zh) | 2011-11-28 | 2011-11-28 | 在mvp处理器中消除纹理延迟和寄存器管理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102520916A CN102520916A (zh) | 2012-06-27 |
CN102520916B true CN102520916B (zh) | 2015-02-11 |
Family
ID=46291859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110384569.9A Active CN102520916B (zh) | 2011-11-28 | 2011-11-28 | 在mvp处理器中消除纹理延迟和寄存器管理的方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9613389B2 (zh) |
CN (1) | CN102520916B (zh) |
WO (1) | WO2013078733A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955407B (zh) * | 2014-04-24 | 2018-09-25 | 深圳中微电科技有限公司 | 在处理器中减小纹理延迟的方法及装置 |
US10776156B2 (en) * | 2016-09-30 | 2020-09-15 | Intel Corporation | Thread priority mechanism |
CN109327849B (zh) * | 2017-07-31 | 2021-12-03 | 华为技术有限公司 | 通信方法、设备及系统 |
US10657699B1 (en) * | 2018-12-08 | 2020-05-19 | Arm Limited | Performing texturing operations for sets of plural execution threads in graphics processing systems |
CN110347508A (zh) * | 2019-07-02 | 2019-10-18 | Oppo广东移动通信有限公司 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983196A (zh) * | 2005-12-16 | 2007-06-20 | 辉达公司 | 用于将执行线程分组的系统和方法 |
CN102147722A (zh) * | 2011-04-08 | 2011-08-10 | 深圳中微电科技有限公司 | 实现中央处理器和图形处理器功能的多线程处理器及方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182108B1 (en) * | 1995-01-31 | 2001-01-30 | Microsoft Corporation | Method and system for multi-threaded processing |
US5977997A (en) * | 1997-03-06 | 1999-11-02 | Lsi Logic Corporation | Single chip computer having integrated MPEG and graphical processors |
US7873785B2 (en) * | 2003-08-19 | 2011-01-18 | Oracle America, Inc. | Multi-core multi-thread processor |
US7870553B2 (en) * | 2003-08-28 | 2011-01-11 | Mips Technologies, Inc. | Symmetric multiprocessor operating system for execution on non-independent lightweight thread contexts |
US7027062B2 (en) * | 2004-02-27 | 2006-04-11 | Nvidia Corporation | Register based queuing for texture requests |
US20060114254A1 (en) * | 2004-11-26 | 2006-06-01 | Tim Day | Volume rendering apparatus and method |
US8484647B2 (en) * | 2009-07-24 | 2013-07-09 | Apple Inc. | Selectively adjusting CPU wait mode based on estimation of remaining work before task completion on GPU |
US8255603B2 (en) * | 2009-08-14 | 2012-08-28 | Advanced Micro Devices, Inc. | User-level interrupt mechanism for multi-core architectures |
US8624910B2 (en) * | 2009-09-23 | 2014-01-07 | Nvidia Corporation | Register indexed sampler for texture opcodes |
US9189242B2 (en) * | 2009-09-24 | 2015-11-17 | Nvidia Corporation | Credit-based streaming multiprocessor warp scheduling |
-
2011
- 2011-11-28 CN CN201110384569.9A patent/CN102520916B/zh active Active
- 2011-12-14 WO PCT/CN2011/084017 patent/WO2013078733A1/zh active Application Filing
- 2011-12-14 US US13/699,658 patent/US9613389B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1983196A (zh) * | 2005-12-16 | 2007-06-20 | 辉达公司 | 用于将执行线程分组的系统和方法 |
CN102147722A (zh) * | 2011-04-08 | 2011-08-10 | 深圳中微电科技有限公司 | 实现中央处理器和图形处理器功能的多线程处理器及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2013078733A1 (zh) | 2013-06-06 |
CN102520916A (zh) | 2012-06-27 |
US20140253567A1 (en) | 2014-09-11 |
US9613389B2 (en) | 2017-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2015096656A1 (zh) | 线程创建方法、业务请求处理方法及相关设备 | |
US20120256922A1 (en) | Multithreaded Processor and Method for Realizing Functions of Central Processing Unit and Graphics Processing Unit | |
JP4292198B2 (ja) | 実行スレッドをグループ化するための方法 | |
CN102520916B (zh) | 在mvp处理器中消除纹理延迟和寄存器管理的方法 | |
EP3140729B1 (en) | Thread waiting in a multithreaded processor architecture | |
US8219993B2 (en) | Frequency scaling of processing unit based on aggregate thread CPI metric | |
CN101403982A (zh) | 一种多核处理器的任务分配方法、系统及设备 | |
CN104753711B (zh) | 调整网络设备资源配置的方法及装置 | |
JP6336399B2 (ja) | マルチスレッドコンピューティング | |
CN102750132B (zh) | 多线程虚拟流水线处理器的线程控制和调用方法及其处理器 | |
CN103842933B (zh) | 多核平台中的受约束引导技术 | |
JP6580307B2 (ja) | マルチコア装置及びマルチコア装置のジョブスケジューリング方法 | |
CN102955549A (zh) | 一种多核cpu的电源管理方法、系统及cpu | |
CN103064657A (zh) | 单个处理器上实现多应用并行处理的方法及装置 | |
US20160116971A1 (en) | Access based resources driven low power control and management for multi-core system on a chip | |
CN106325995B (zh) | 一种gpu资源的分配方法及系统 | |
US20170139625A1 (en) | Memory and processor hierarchy to improve power efficiency | |
CN103150216A (zh) | 一种SoC集成的多端口DDR2/3调度器及调度方法 | |
CN105045564A (zh) | 图形处理器中的前端动态共享方法 | |
US10503541B2 (en) | System and method for handling dependencies in dynamic thread spawning for a multi-threading processor | |
EP3465382A1 (en) | Power aware packet distribution | |
CN103995744B (zh) | 一种用于消除存储访问拥塞的同构计算任务分组方法 | |
CN115951987A (zh) | 一种存储系统中多线程的任务执行方法、装置以及介质 | |
CN118861377A (zh) | 同步fpga-cpu架构的正则表达式匹配方法及系统 | |
CN103955408A (zh) | Mvp处理器中有dma参与的线程管理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder |
Address after: Unit 06-08, 7th Floor, Changhong Science and Technology Building, 18 Science and Technology South 12 Road, Nanshan District, Shenzhen City, Guangdong Province Patentee after: Shenzhen ICube Technology Corp. Address before: Room 706-8, Changhong Science and Technology Building, 18 Science and Technology South 12 Road, Nanshan District, Shenzhen City, Guangdong Province, 518057 Patentee before: Shenzhen ICube Technology Corp. |
|
CP02 | Change in the address of a patent holder |