支持多线程处理器的缓存器收集机制及其收集方法

文档序号:6650986阅读:226来源:国知局
专利名称:支持多线程处理器的缓存器收集机制及其收集方法
技术领域
本发明是关于一种多线程处理器的机制及其执行方法,特别是有关于一种多线程处理器的缓存器收集机制及其收集方法。
背景技术
参考图1A,表示现有单线程处理器。一般而言,单线程处理器依据程序计数器(Programming Counter,PC)100a从程序102a撷取目前指向的指令或下一个指令,以产生可操作的单线程104a,以供执行单元106a输出所要得到的结果。在程序102a中定义的缓存器108a被配置至撷取指令的单线程104a,作为单线程104a的可操作数据的来源及目标。换言之,每一单线程104a至少与一程序计数器100a及一缓存器108a有关。
更进一步地,图1B显示利用现有多线程处理器,以提高处理速度。此处,多线程处理器依据若干程序计数器(PC1,PC2,…,PCN)100b从数个程序(P1,P2,…,PN)102b中撷取一部分的指令,以个别地产生若干线程104b。再者,利用若干缓存器或称作缓存器组(R1,R2,…,RN)从程序计数器100b接收译码指令。然后使执行单元106b选择性地或同时性地执行这些线程104b。
由于只要执行单元(106a,106b)在处理线程(104a,104b),用于线程(104a,104b)程序的计数器(100a,100b)及缓存器组(108a,108b)就必须一直被保留,导致缓存器组(108a, 108b)必须不断地增加。随着特定逐渐增加的缓存器,这些缓存器占据内部缓冲存储器越多的空间,并因此造成可操作线程(104a,104b)数目上相当大的限制。尤其对于极为缺乏外部内存支持的图形处理器而言,为了接踵而来的特殊效果,必须指定越来越多的缓存器。然而,在使用大部分的一般特效时,这些指定的缓存器都未有效地运用。
关于上述的问题,现有技术是在乱序执行处理的处理器中使用改名缓存器的方式来避免使用过多的缓存器,此一技术的实施例在美国第6,314,511号专利——“以改名缓存器实施动态乱序执行指令的处理器中释放缓存器的机制”中得到揭露。然而,该缓存器改名机制是使用复杂的乱序执行机制。换句话说,在指令被接收并译码后,缓存器改名机制动态地执行改名缓存器来修改缓存器,以修正只出现在乱序执行机制中重新编排的缓冲存储器。因此,相较于依序执行处理的处理器,乱序执行的处理器的缓存器改名机制要复杂许多。
如前所述,无论是单线程或多线程处理器,以缓存器作为暂时缓冲区来储存线程的执行数据都无法满足逐渐增加的特定缓存器组的趋势。因此需要发展一有能力提供较少但充分利用缓存器的多线程处理器,从而减少可操作缓存器的数目,并提升多线程的执行效能。

发明内容本发明的目的在于提供一缓存器收集机制及其收集方法,该机制及其收集方法在多线程处理器撷取程序或是对该程序进行译码之前,可调整性地连续收集较少的缓存器以为若干程序多线程的运算数据的来源及目标根据前述目的,本发明提供一种多线程处理器的缓存器收集机制及其处理方法。适用于在计算机系统中多线程处理器的缓存器收集机制包含一指令扫瞄器、缓存器对应表、指令修改器以及指示报告器。
指令扫瞄器用以扫瞄具有若干第一指令的第一程序,并且对第一指令进行译码,以取得原本指定给第一指令的若干虚拟缓存器编号。当任何一虚拟缓存器未被对应至个别原先已储存的实质缓存器编号,利用连结至指令扫瞄器的缓存器对应表来收集若干实质缓存器,以形成连续的缓存器编号,其中这些连续的缓存器编号包含原先已储存于缓存器对应表中原有的实质缓存器编号。再者,连续实质缓存器编号的最后一个实质缓存器编号值表示配置给若干第一程序的实质缓存器编号的总数指示值,并且小于虚拟缓存器编号的最后一个虚拟缓存器编号值。连结至指令扫瞄器及缓存器对应表的指令修改器用以修改虚拟缓存器编号,以产生具有若干第二指令的第二程序,其中若干第二指令由在缓存器对应表中连续实质缓存器编号所构成。如此,第二程序便由具有连续实质缓存器编号的若干第二指令所构成。
多线程处理器实施缓存器收集机制的执行方法说明如下当第一程序加载缓存器收集机制,相关的对应数据会从缓存器对应表被清除,以对先前虚拟及实质缓存器编号的对应状态进行初始化。以指令扫瞄器对具有若干指令的程序进行完整静态的扫瞄,所谓“静态扫瞄”是指在程序执行之前,先对程序的内容进行扫瞄,亦即将程序加载撷取装置(Fetcher)或是译码装置(Decoder)之前先进行程序的扫瞄步骤。之后,连续对指令进行译码,以取得连续的虚拟缓存器编号。接着,将指令的每一虚拟缓存器编号,与原先储存在缓存器对应表中个别的实质缓存器编号作比较,以决定当至少一个虚拟缓存器编号未被对应,或与原先储存在缓存器对应表中实质缓存器编号不相同,是否自动地收集缓存器编号形成若干连续的实质缓存器编号,其中这些实质的缓存器编号包含原先已储存实质缓存器编号。连续实质缓存器编号的最后一个实质缓存器编号值应表示配置给多线程处理器的实质缓存器编号的总数指示值。
当将虚拟缓存器编号与实质缓存器编号比较的步骤为否定,即未对应,将新增的虚拟缓存器储存至缓存器对应表,是该虚拟缓存器编号会对应至连续实质缓存器编号的最后一个编号。然后,记录或更新虚拟缓存器编号与实质缓存器编号间对应状态或配对关系储存至缓存器对应表中。最后,执行连续增加实质缓存器编号的总数指示值的步骤,此步骤反应连续实质缓存器编号的对应状态。当将虚拟缓存器编号与实质缓存器编号比较的步骤为肯定,即对应,修改虚拟缓存器编号,以产生具有若干第二指令的第二程序。换言之,该虚拟缓存器编号是有连续顺序的现存实质缓存器编号之一。如此,第二程序由实质缓存器编号构成并应储存在缓存器对应表中。
本发明的优点包含(a)提供足够缓存器,用以执行更多的线程,以降低线程处理器的制造成本。(b)预先静态地重新配置程序的虚拟缓存器编号,以产生从缓存器机制发出的总数指示值,用以处理器能执行更多线程,以及(c)提供一缓存器收集机制及其方法,以在多线程处理器中有效利用配置给程序的实质缓存器。

图1A为表示现有单线程处理器的流程图。
图1B为表示现有多线程处理器的流程图。
图2A为依本发明的一实施例,揭示一有缓存器收集机制的多线程处理器的方块图,其中第二程序的若干线程的执行数目由从N增加至iN。
图2B为依本发明的另一实施例,揭示一有缓存器收集机制的多线程处理器的方块图,其中第二程序的若干线程被执行并从N增加至iN。
图3为依本发明,揭示在图2中执行缓存器收集机制的多线程处理器的详细方块图。
图4A为依本发明的第一个实施例,揭示在图3多线程处理器中以扫瞄程序执行缓存器收集机制的方块图。
图4B为依本发明的次个实施例,揭示在图3多线程处理器中以扫瞄程序执行缓存器收集机制的方块图。
图5A-5B为依本发明,揭示执行有缓存器收集机制的多线程处理器的流程图。
具体实施方式本发明应用于缓存器收集机制及其收集方法,在该些程序指令传送至处理器或者指令于处理器中被撷取或译码前,用以集合更多缓存器以同时执行在多线程处理器中更多程序的线程。
再者,缓存器收集机制及其收集方法有效地利用位于处理器中配置程序的实质缓存器。此外,利用从缓存器收集机制中指示器报告器发出的总数指示值,能管理位于多线程处理器中实质缓存器的对应状态以取得更多能执行的线程。本发明中多线程处理器应包含单指令多重数据(SingleInstruction Multiple Data,SIMD),即数字信号处理器(Digital SignalProcessors,DSPs)及图形处理器(Graphics Processing Units,GPUs)。
图2A为依本发明的一实施例,揭示一有缓存器收集机制的多线程处理器的方块图,其中第二程序的若干线程被执行并从N增加至iN。多线程处理器200包含缓存器收集单元202及处理单元204缓存器收集单元202将第一程序(First Program,FP1,FP2,…,FPiN)206的虚拟缓存器编号(表示于图4A及图4B)206a与缓存器对应表中第二程序(Second Program,SP1,SP2,…,SPiN)208的若干实质缓存器(亦表示于图4A及图4B)208a作比较,以再配置虚拟缓存器编号。虚拟缓存器编号206a与实质缓存器编号间的对应状态或配对关系应被记录于缓存器收集单元202或连结于缓存器收集单元的内存中。因此,有连续次序的实质缓存器编号用以修改虚拟缓存器编号206a,以静态地再生第二程序(SP1,SP2,…,SPiN)208。
在有关单指令多重数据处理器的技术中,例如数字信号处理器(DSPs)及图形处理器(GPUs),多线程被用以依序执行的方式执行数据串流的不同部分。在此例中,所有线程均接收自同一程序,如图2B所示。
图2B为依本发明的另一实施例,揭示一有缓存器收集机制的多线程处理器的方块图,其中第二程序的若干线程被执行并从N增加至iN。缓存器收集单元202将第一程序(FP)206的虚拟缓存器编号(如第4A及4B图所示)206a与缓存器对应表中第二程序(SP)208的若干实质缓存器(如图4A及图4B所示)208a作比较,以再配置虚拟缓存器编号。虚拟缓存器编号206a与实质缓存器编号间的对应状态或配对关系也被记录于缓存器收集单元202或连结于缓存器收集单元的内存中。因此,有连续次序的实质缓存器编号用以修改虚拟缓存器编号206a以静态地再生第二程序(SP)208。
来自缓存器收集单元202的第二程序208执行于具有若干程序计数器210、实质缓存器212及执行单元214的处理单元204。特别是,程序指示器210用以记录第二程序208现在或下一个指令的地址。实质缓存器212用以对应于实质缓存器编号208a并配置给程序计数器210,以作为线程216执行数据的缓冲。注意到线程216由程序计数器210及实质缓存器212所组成。连结至实质缓存器212的执行单元214用以依据总数指示值218,即来自暂存收集单元202的缓存器编号208a的缓存器总数指示值来执行线程216。结果,对于为处理单元204重新配置的实质缓存器212而言,虚拟缓存器编号与实质缓存器编号(206a,208a)间增加的缓存器的总数指示值218是有效的。
配置给第一程序206的实质缓存器212的编号通常被定义为指令组,但在现有技术中若干实质缓存器212并未为第二程序208的线程216充分使用。对大多数应用而言,会利用缓存器组定义的所有实质缓存器212,然而,当实质缓存器212仍不足以储存指令时,会将存取指令用以内存中暂时缓冲的额外指令。例如,因图形处理单元缺乏内存结构,为了处理关于图形更复杂的程序,必须为指令组准备许多额外实质缓存器。结果,本发明中有缓存器收集机制的多线程处理器对图形处理单元(GPU)而言非常得适合。对依序执行多线程处理器而言,本发明能改善在专注于乱序执行处理器的美国专利号6,314,511所提到的大量动态更名缓存器。然而,即使对乱序执行处理机制,本发明亦提供一成本低廉许多的解决方案。
图3为依本发明为次图中多线程执行的缓存器收集机制202的详细方块图。适用于计算机中多线程的缓存器收集机制202包含指令扫瞄器300,缓存器对应表302,指令修改器304以及指示报告器306。
指令扫瞄器300用以扫瞄至少一个以上具有若干指令的第一程序206并同时译码各第一指令以取得原本分属于各第一指令的若干虚拟缓存器编号206a。连结至指令扫瞄器300的缓存器对应表302能将第一指令的虚拟缓存器编号与原先已储存在缓存器对应表302中个别的实质缓存器208a作比较,以决定当至少一个虚拟缓存器206a未被对应至或与原先已储存在缓存器对应表302的实质缓存器编号208a不相同而无法形成对应,是否自动地收集若干实质缓存器编号208a形成连续的缓存器编号。
再者,实质缓存器编号208a最后一个实质缓存器编号值表示配置给第一程序206的实质缓存器212的总数指示值218并且小于虚拟缓存器编号206a。连结至指令扫瞄器及缓存器对应表302的指令修改器304用以修改虚拟缓存器编号206a以产生具有若干个第二指令的第二程序208,其中该些第二指令由在缓存器对应表302中连续实质缓存器编号208a所构成。
更重要的是,缓存器收集机制202也构成指示报告器306以传送实质缓存器编号的总数指示值218至多线程处理器,以便多线程处理器能依据总数指示值218执行更多的程序。换言之,多线程处理器以最少的实质缓存器编号执行程序的指令以节省处理器更多的实质缓存器212。同时,每一虚拟缓存器206a应有原始缓存器编号及目标缓存器编号以储存第一程序206的指令的执行数据。
在一实施例中,总数指示值218为配置给第二程序208的实质缓存器212的数目、以多线程处理器正在处理的线程数目、或是当处理线程时以多线程处理器正在处理的若干线程模式,以更具有弹性。
接着,如图2及图3所示在一较佳实施例中,缓存器收集机制能以硬件或软件的形式来执行。以软件而言,其即为在作业程序中执行的软件工具套件,程序加载或装置驱动的一部分。此外,以硬件而言,缓存器收集机制202应连结至程序计数器210的输入部分、指令接收器或译码器,或能设置在定义为相较于以译码器最先接收指令的动态模式的静态模式的多线程单元204中。由于以缓存器收集机制静态地扫瞄第一程序用以产生简化的第二程序,缓存器收集机制使实质缓存器212能被更多线程206利用。
图4A为依本发明第一实施例在图3多线程处理器中以扫瞄程序执行的缓存器收集机制的方块图。在此实施例中,以指令扫瞄器300扫瞄并译码具有虚拟缓存器206a,r0~r15配置的指令,其中第一程序指令的虚拟缓存器编号206a为16,即在缓存器对应表左边行r0~r15。使用缓存器对应表302重新配置虚拟缓存器r15为r2如此以r2替换r15。实质缓存器编号r2为在右边行有连续次序的实质缓存器编号208a,r0~r3暂存之一。然后虚拟缓存器编号206a,即r0~r15实质缓存器编号208a,即r0~r3之间的对应状态或配合关系被记录及储存在缓存器对应表302中。
图4B为依本发明次实施例在图3多线程处理器中以扫瞄程序执行的缓存器收集机制的方块图。
在此实施例中,以指令扫瞄器300扫瞄并译码具有虚拟缓存器206a,(r1,r2,r5,r8,r10,r35)配置的指令,其中第一程序使用的指令的虚拟缓存器编号206a为35,即在缓存器对应表左边行r1~r35。使用缓存器对应表302重新配置虚拟缓存器r35为r6如此以r6替换r35。实质缓存器编号r6为在右边行有连续次序的实质缓存器编号208a的r1~r6之一。
其余的实质缓存器编号,即r8及r10个别地重新配置至在右边行有连续次序的实质缓存器编号208a,r1~r6号中的r3及r4,以便以r3及r4替换r8及r10。另外,虚拟缓存器编号206a的(r1,r2,r5)不变地对应至实质缓存器编号的(r1,r2,r5)。亦即,虚拟的缓存器编号206a的(r1,r2,r5)并未改变。然后虚拟缓存器编号206a,即(r1,r2,r5,r8,r10,r35)实质缓存器编号208a,即r1~r6之间的对应状态或配合关系立即被记录及储存在缓存器对应表302中。
并且,对应状态的总数指示值218被传送至多线程处理器,以决定图2中实质缓存器的数目以再配置给程序。当仅四个缓存器包含(r0,r1,r3,r15)被用以执行程序时,其余的实质缓存器r2及r4~r15能为一个或更多程序产生的线程再利用。结果,多线程处理器允许本身能执行多达四倍的线程数目。
如图2与图4所示根据本发明的一实施例,在第一程序(FP1,FP2,…,FPiN)206输入缓存器收集机制202前,配置给第一程序206的虚拟缓存器数目被定义为t1。换言之,在第一程序(FP1,FP2,…,FPiN)206输入缓存器收集机制202并处理后,对应于第一程序而配置给第二程序208的实质缓存器编号208a被定义为t2。t1对t2的比i(i=t1/t2)表示配置给第一及第二程序(206,208)的实质缓存器212的利用状态其中i为正数且应为自然数图5为根据本发明有缓存器收集集机制的多线程处理器的方块图。由S502步骤开始,当第一程序加载缓存器收集机制时,清除有关原先虚拟缓存器及实质缓存器的相关对应数据,以初始化对应状态。于步骤S504,用指令扫瞄器静态地完整扫瞄至少一具有若干指令的程序如显示在步骤S504。于步骤S506,连续地译码被扫瞄的指令以取得若干虚拟缓存器编号。
之后,于决定步骤S508,将指令的各虚拟缓存器编号与预先储存在缓存器对应表中个别的实质缓存器编号作比较,以决定当至少一个虚拟缓存器编号未被对应或与原先储存在缓存器对应表中实质缓存器编号不相同而无法形成对应,是否自动地收集缓存器编号形成连续的若干实质缓存器编号,其中这些实质的缓存器编号包含原先已储存实质缓存器编号。连续实质缓存器编号的最后一个实质缓存器编号值应表示配置给多线程处理器的实质缓存器编号的总数指示值,并且该最后一个实质缓存器编号值小于虚拟缓存器编号。
当决定步骤S508的结果为否定,即未对应,当至少一个虚拟缓存器被新增至缓存器对应表,至少一个虚拟缓存器编号被对应至一个收集在连续的实质缓存器编号后的最后一个编号。于步骤S512,记录虚拟缓存器编号与实质缓存器编号间对应状态或配对关系至缓存器对应表中。
最后,执行反应对应状态的连续增加实质缓存器编号的总数指示值的步骤S514。当决定步骤S508的结果为否定,即未对应,修改虚拟缓存器编号以产成具有若干第二指令的第二程序如显示在步骤S516。换言之,虚拟缓存器编号是有连续顺序的现存实质缓存器编号之一。第二程序由实质缓存器编号构成并应储存在缓存器对应表中。
继续进行决定步骤S518,如果最末个虚拟缓存器编号已完成,便执行步骤S520,当决定步骤S518的结果为否定,便回到步骤S506以从相同指令取得下一个虚拟缓存器编号。于决定步骤S520,如果最末个第一指令已完成,则执行步骤S520后回到步骤S504以指令扫瞄器用以静态地扫瞄下一个第一指令。如步骤S522所示,通过发出实质缓存器编号的总数指示值至多线程处理器,多线程处理器接收指示以管理实质缓存器,用以执行由一个以上的程序产生的更多的线程。
对多线程处理器而言,于步骤S524,具有连续实质缓存器编号的第二程序在多线程处理器中被执行。如步骤S526所示,第二程序的第二指令被记录用以撷取第二指令,以程序计数器产生若干线程。于步骤S528,执行对应于连续实质缓存器编号,在若干实质缓存器中的线程。
本发明的优点(a)提供足够缓存器,用以执行更多的线程,以降低线程处理器的制造成本。(b)预先静态地重新配置程序的虚拟缓存器编号,以产生从缓存器机制发出的总数指示值,用以处理器能执行更多线程。(c)提供一缓存器收集机制及其方法,以在多线程处理器中有效利用配置给程序的实质缓存器;以及(d)对于单指令多重数据(SIMDs),即数字信号处理器(DSPs)及图形处理器(GPUs),依序执行,甚至乱序执行处理器,本发明亦提供一较价廉的解决方案。
权利要求
1.一种用于多线程处理器的缓存器收集机制,其特征在于该缓存器收集机制包含指令扫瞄器,连结至该指令扫瞄器的缓存器对应表,以及连结至该指令扫瞄器及该缓存器对应表的指令修改器;所述扫描器扫瞄至少一具有至少一个第一指令的第一程序、用以产生至少一第一缓存器编号,所述缓存器对应表收集了若干个对应该第一缓存器编号的第二缓存器编号,所述指令修改器修改该些第一缓存器编号、以产生至少一具有若干个第二指令的第二程序,其中该些第二指令由收集在该缓存器对应表中该些第二缓存器编号构成。
2.如权利要求1所述的缓存器收集机制,其特征在于当至少一个该第一缓存器编号与原先储存在该缓存器对应表中个别的该第二缓存器编号不相同而无法形成对应时,缓存器对应表中的该第二缓存器编号形成为若干连续的缓存器编号。
3.如权利要求2所述的缓存器收集机制,其特征在于该些第一缓存器编号为配置给该些第一程序的若干的虚拟缓存器编号。
4.如权利要求3所述的缓存器收集机制,其特征在于该些第二缓存器编号为配置给该些第二程序的若干的实质缓存器编号。
5.如权利要求4所述的缓存器收集机制,其特征在于该些连续的实质缓存器编号的最后一个实质缓存器编号值表示配置给该多线程处理器的总数指示值,并且该最后一个实质缓存器编号值小于该些虚拟缓存器编号的最后一个虚拟缓存器编号值。
6.如权利要求1所述的缓存器收集机制,其特征在于该缓存器收集机制进一步包含指示报告器,用以发出该些实质缓存器的总数指示值至该多线程处理器。
7.如权利要求6所述的缓存器收集机制,其特征在于该总数指示值为在该多线程处理器被执行的若干线程。
8.如权利要求6所述的缓存器收集机制,其特征在于该总数指示值为在多线程处理器中处理该些线程的若干个不同执行模式。
9.如权利要求6所述的缓存器收集机制,其特征在于该总数指示值为配置给该些第二程序缓存器的编号。
10.如权利要求1所述的缓存器收集机制,其特征在于以该指令修改器修改的该些第二程序的该些第二指令以依序执行的方式于该多线程处理器中执行。
11.如权利要求1所述的缓存器收集机制,其特征在于以该指令修改器修改的该些第二程序的该些第二指令以乱序执行方式于该多线程处理器中执行。
12.一种多线程处理器,其特征在于该处理器包含缓存器收集单元,以及连结至该缓存器收集单元的处理单元,其中该缓存器收集单元包括指令扫瞄器、连结至该指令扫瞄器的缓存器对应表、连结至该指令扫瞄器及该缓存器对应表的指令修改器;所述指令扫瞄器扫瞄至少一具有至少一个第一指令的第一程序、用以产生至少一个第一缓存器编号,所述缓存器对应表将该第一指令的该些第一缓存器编号与储存在该缓存器对应表中的若干第二缓存器编号作比较、以决定是否自动地收集对应于该些第一缓存器编号的若干第二缓存器编号,指令修改器修改该些第一缓存器编号、以产生至少一具有若干个第二指令的第二程序,处理单元执行来自该缓存器收集单元的该指令修改器的该第二程序,其中该些第二指令由收集在该缓存器对应表中该些第二缓存器编号构成。
13.如权利要求12所述的多线程处理器,其特征在于该些第二缓存器编号的最后一个缓存器编号值表示配置给该多线程处理器的该些第二缓存器编号的总数指示值,并且该总数指示值小于该些第一缓存器编号的最后一个缓存器编号值。
14.如权利要求13所述的多线程处理器,其特征在于该些第一缓存器编号为配置给该些第一程序的若干的虚拟缓存器编号。
15.如权利要求14所述的多线程处理器,其特征在于该些第二缓存器编号为连续的编号,并表示配置给该些第二程序的若干的实质缓存器编号。
16.如权利要求12所述的多线程处理器,其特征在于该多线程处理器进一步包含连结至该指令扫瞄器及该缓存器对应表的指令修改器,以发出该些实质缓存器的总数指示值至该多线程处理器。
17.如权利要求12所述的多线程处理器,其特征在于该处理单元包含记录该些第二程序的该些第二指令、以便该处理单元能接收该些第二指令、以产生若干线程的若干计数器,以及个别对应该些第二缓存器编号、用于配置给该程序计数器以储存该些线程的执行数据的若干个实质缓存器。
18.如权利要求17所述的多线程处理器,其特征在于该多线程处理器进一步包含连结至该些实质缓存器的执行单元,以执行对应至该些第二缓存器编号的若干个缓存器的若干线程,以产生该执行数据。
19.如权利要求18所述的多线程处理器,其特征在于该总数指示值为在该多线程处理器所执行的线程数目。
20.如权利要求18所述的多线程处理器,其特征在于该总数指示值为在该多线程处理器中处理线程的若干个不同执行模式。
21.如权利要求18所述的多线程处理器,其特征在于该总数指示值为配置给该些第二程序的若干实质缓存器的数目。
22.如权利要求12所述的多线程处理器,其特征在于以该指令修改器修改该第二程序的该第二指令是以依序执行的方式于该多线程处理器中执行。
23.如权利要求12所述的多线程处理器,其特征在于以该指令修改器修改该第二程序的该第二指令是以乱序执行方式于该多线程处理器中执行。
24.一种执行缓存器收集机制的方法,用于多线程处理器,至少包含下列步骤扫瞄至少一具有至少一个第一指令的第一程序;将该些第一指令译码,以形成若干第一缓存器编号;将该些第一指令的该些第一缓存器编号与储存在缓存器对应表中的若干第二缓存器编号作比较,以决定是否自动地收集对应于该些第一缓存器编号的若干第二缓存器编号;以及修改该些第一缓存器编号,以产生至少一具有若干个第二指令的第二程序,其中该些第二指令由在该缓存器对应表中该些第二缓存器编号构成。
25.如权利要求24所述的方法,其特征在于在比较该些第一指令的该第一缓存器编号的步骤,其中该些第二缓存器编号的最后一个缓存器编号值表示配置给该多线程处理器的第二缓存器编号的总数指示值,并且小于该些第一缓存器编号的最后一个缓存器编号值。
26.如权利要求25所述的方法,其特征在于该些第一缓存器编号为配置给该些第一程序的若干的虚拟缓存器编号。
27.如权利要求26所述的方法,其特征在于该些第二缓存器编号为连续的并表示配置给该第二程序的若干的实质缓存器编号。
28.如权利要求27所述的方法,其特征在于在修改该些第一缓存器编号的步骤后,发出该些实质缓存器的总数指示值至该多线程处理器。
29.如权利要求28所述的方法,其特征在于在发出该些第二缓存器的总数指示值的步骤后,在多线程处理器中执行具有连续实质缓存器编号的该第二程序。
30.如权利要求29所述的方法,其特征在于在执行该第二程序的步骤,更包含记录该第二程序的该第二指令以撷取该些第二指令,以产生若干线程
31.如权利要求30所述的方法,其特征在于在记录该第二程序的该第二指令的步骤后,执行对应于连续实质缓存器编号的若干实质缓存器的该些线程。
32.如权利要求31所述的方法,其特征在于该总数指示值为在该多线程处理器所执行的线程数目。
33.如权利要求31所述的方法,其特征在于该总数指示值为在该多线程处理器中处理线程的若干个不同执行模式。
34.如权利要求31所述的方法,其特征在于该总数指示值为配置给该些第二程序的若干实质缓存器的数目。
35.如权利要求27所述的方法,其特征在于在比较该些第一指令的该些虚拟缓存器编号的步骤后,记录当该些虚拟缓存器被新增至该缓存器对应表,收集在该些连续实质缓存器编号的最后一个实质缓存器编号后,该些虚拟缓存器编号与该些实质缓存器编号间的对应状态。
36.如权利要求35所述的方法,其特征在于在记录该些虚拟缓存器编号与该些实质缓存器编号间的对应状态的步骤后,反应该对应状态而连续地增加该些实质缓存器编号的总数指示值。
37.如权利要求24所述的方法,其特征在于在扫瞄该第一程序的步骤前,当该第一程序加载时,清除该缓存器对应表的内容。
38.如权利要求24所述的方法,其特征在于在修改该些第一缓存器编号的步骤,包含修改全部该些第一缓存器编号。
39.如权利要求24所述的方法,其特征在于在修改该些第一缓存器编号的步骤,包含修改大于该总数指示值的该些第一缓存器编号部分。
40.如权利要求24所述的方法,其特征在于修改该第二程序的该些第二指令为以依序执行的方式于该多线程处理器中执行。
41.如权利要求24所述的方法,其特征在于修改该第二程序的该些第二指令为以乱序执行方式于该多线程处理器中执行。
全文摘要
一种多线程处理器的缓存器收集机制及其收集方法。缓存器收集机制包含指令扫瞄器、缓存器对应表、指令修改器以及指示报告器。指令扫瞄器扫瞄具有第一指令的第一程序并译码第一指令以从第一指令取得虚拟缓存器编号。缓存器对应表比较第一指令的虚拟缓存器编号,以决定当虚拟缓存器编号与原先储存在缓存器对应表中实质缓存器编号不相同而无法形成对应时是否收集缓存器编号,形成若干个连续的实质缓存器编号。指令修改器修改虚拟缓存器编号以产生第二指令的第二程序,其中第二指令由收集在缓存器对应表中连续实质缓存器编号构成。
文档编号G06F9/38GK1873610SQ20051012558
公开日2006年12月6日 申请日期2005年11月22日 优先权日2005年6月3日
发明者徐日明 申请人:矽统科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1