处理系统以及用以处理该处理系统中指令的相关方法

文档序号:6571109阅读:194来源:国知局
专利名称:处理系统以及用以处理该处理系统中指令的相关方法
技术领域
本发明涉及一种处理包含多个处理单元的处理系统的预定指令的方法, 特别有特别涉及一种处理系统,其具有提供每一处理单元的本地程序计数器 的多个处理单元。且本发明有关于处理此处理系统中的预定指令的相关方法。
背景技术
一般而言,单指令多数据(Single Instruction Multiple Data, SIMD)处理系统的指令执行流程控制(flow control,或称为分支控制branchcontrol)都相当的困难,因为对于同一个分支指令处理的多个不同数据,可能会造成不同的分支结果,但是受限于此处理系统仅能够在同一时间内执行 单一指令于多个数据的特性,所以需要一些特殊技巧来解决在此处理系统架构下,执行不同指令流程的问题。坎套式流程控制更恶化了此种问题。有一 些现有方法可以解决部份问题,但却浪费了硬件资源来解决前述的坎套式流 程控制问题。通常在绘图处理的领域中,都利用SIMD的平行处理架构特性来处理需要 做类似运算的多笔数据。然而,SIMD通常相当的受限。举例来说,较常见的 问题是平行处理系统的多数SIMD处理单元虽然可以同时处理多笔不同的数 据,但每一个处理单元都必须执行同一个程序计数器(program counter)所 指定的指令。事实上,传统的SIMD处理单元仅有一个程序计数器。因此,需要有新颖的方法和装置解决上述问题。发明内容因此,本发明的目的之一是提供一具有多数处理单元的一处理系统以解 决前述问题,其中,处理单元具有本地程序计数器。本发明更提供与此处理 系统相关的方法,用以处理在处理系统中的预定指令。本发明的较佳实施例揭露了一种一处理系统中的预定指令的处理方法, 此处理系统具有多数处理单元,此方法包含提供一全局(global)程序计数器,并设定该全局程序计数器的计数值,以作为被执行的所述预定指令的指令;指定一本地程序计数器给每一处理单 元,并根据该处理单元所执行的一现今指令设定该本地(local)程序计数器的 一计数值;以及根据存储在该处理单元的该本地程序计数器以及该全局程序 计数器的计数值使能至少一处理单元以执行所述预定指令的一特定指令。本发明的较佳实施例揭露了 一种用以处理预定指令的处理系统。此处理 系统包含 一指令緩冲器,用以接收并緩冲该预定指令; 一全局程序计数器, 耦接至该指令緩沖器,用以存储一计数值,且该计数值是作为被执行的该预 定指令的指令;多数处理单元,其中的每一个包含 一执行单元,用以执行 指令; 一本地(local)程序计数器,用以根据该执行单元所执行的一现今指 令设定一计数值;以及一流程控制单元,耦接至该全局程序计数器以及每一 处理单元,用以根据存储在该处理单元的该本地程序计数器以及该全局程序 计数器的计数值使能至少一处理单元以执行所述预定指令的一特定指令。


图1示出了根据本发明的一实施例的用以处理预定指令的处理系统的方块图。图2示出了根据本发明的实施例的用以处理预定指令的方法。附图符号说明100处理系统105多凄t处理单元106执行单元107本地程序计数器108写回单元109緩存器文件110指令緩沖器120全局程序计数器130指令取得/解码单元140流程控制单元具体实施方式
在i兑明书及后续的申^青专利范围当中j吏用了某些词汇来指称特定的组 件。所属领域中具有通常知识者应可理解,硬件制造商可能会用不同的名词 来称呼同一个组件。本说明书及后续的申请专利范围并不以名称的差异来作 为区分組件的方式,而是以组件在功能上的差异来作为区分的准则。在通篇 说明书及后续的请求项当中所提及的「包含」是一开放式的用语,故应解释成r包含但不限定于」。以外,「耦接」 一词在此是包含任何直接及间接的电 气连接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表该第 —装置可直接电气连接于该第二装置,或通过其它装置或连接手段间接地电 气连接至该第二装置。请参照图1,图1示出了根据本发明的一实施例的用以处理预定指令的 处理系统100的方块图。在图1中,小箭头符号代表一控制路径,其代表何 种动作欲被执行以及欲被写入至特定緩存器的执行结果。而大箭头符号代表 一数据路径,而数据路径包含了指令以及数据。处理系统100包含一指令緩 冲器110。指令緩冲器110用以接收并缓沖欲被处理的预定指令。全局程序 计数器120耦接至指令緩冲器110,用以存储一计数值以作为被执行的该预 定指令的指令。处理系统100亦包含多数处理单元105,其中的每一个都具 有一执行单元106以及一本地程序计数器l(H。执行单元106用以执行存储 在指令緩冲器110中的预定指令。本地程序计数器107用以根据执行单元106 所执行的一现今指令"i殳定一计数值。此外,处理系统100包含一流程控制单元"0。流程控制单元14G耦接 至全局程序计数器120以及每一多数处理单元105。流程控制单元用以 根据存储在处理单元105中的本地程序计数器107以及全局程序计数器120 的计数值使能至少一处理单元105以执行预定指令的一特定指令。处理系统100的流程控制单元140在存储在特定处理单元中105的特定 本地程序计数器107具有和全局程序计数器120相等的计数值时,使能一特 定处理单元105以执行被全局程序计数器120所指向(point to)的特定指令。此外,特定处理单元105中的特定本地程序计数器107在处理单元IOS 的特定处理单元105未被流程控制单元14G使能以执行特定指令时,维持存 储在特定本地程序计数器1Q7的一特定计数值。若特定指令不为一流程控制指令,处理系统100的流程控制单元140控制特定本地程序计数器107以增加存储在特定本地程序计数器107中的特定 计数值。若特定指令是一流程控制指令,特定处理单元1Q5的执行单元1Q6计算 流程控制指令,且流程控制单元14G根据4丸行单元106的计算结果更新存储 在特定本地程序计数器107中的特定计数值。流程控制单元106在流程控制指令(或分支指令)未被判断成分支动作 要才丸行(branch not taken)时,增加存^诸在特定本地程序计数器107中的 特定计数值,以及流程控制单元106在流程控制指令(或分支指令)被判断成 分支动作要执行时(branch taken),指派对应于另 一指令的一预定目标地址 给存储在特定本地程序计数器107中的特定计数值。在本发明的另一实施例中,每一处理单元105包含一呼叫状态位(call status bit),用以表示处理单元105何时执行一呼叫块(call block)或一 坎套呼叫块(nested call block)的指令。此特性相当的重要,因为若本地 程序计数器107具有最小的本地程序计数值,将使得相对应的处理单元IO5 执行指令。每一处理单元105可具有一呼叫状态位,当处理单元105执行进 入一呼叫块或一坎套呼叫块的一呼叫指令(Call )时,呼叫状态位被设定。 而当处理单元105执行存在于非坎套呼叫块或位于最高层坎套呼叫块的一回 复指令(Return)时,呼叫状态位被清除。在此例中,具有设定的呼叫状态 位的处理单元105首先被视为一群组,且在此群组中,若处理单元105具有 最小的本地程序计数值,将使得相对应的处理单元105执行指令。当没有呼 叫状态位被设定时,则回到先前的规则,藉此,流程控制单元140会从处理 单元105中,选取具有最小的对应本地程序计数值来设定全局程序计数器120 并抓取指令,亦即处理单元105具有最小的对应本地程序计数值者会执行指 令,在此情况下呼叫状态位并不会有影响。易而言之,在此实施例中具有设定的呼叫状态位的处理单元105具有取 得和执行指令的优先级。藉此方法具有设定的呼叫状态位的处理单元105比 不具有设定的呼叫状态位的处理单元105优先被使能。举例而言, 一第一处 理单元具有M本地程序计数值,且此本地程序计数值组具有设定的呼叫状态 位,而一第二处理单元具有M-1本地程序计数值,且此本地程序计数值组具 有清除的呼叫状态位。在此情况下,因为具有设定的呼叫状态位,被较大值 的M本地程序计数值所指向的指令反而被取得和执行。最后,用以处理预定指令的处理系统100的处理单元105更包含一写回(write-back)单元108以及一緩存器文件109。在本发明的实施例中,流程 控制单元140被用以控制执行单元106以根据本地程序计数器107执行跟随 流程控制指令的指令。流程控制单元14 0亦被用以控制写回单元108以将3九 行结果写入緩存器文件109。上述的处理系统100可为一平行处理系统,而处理单元105可为一平行 处理单元,但仅用以举例,并非用以限定本发明。熟知此项技艺者当可知道 本发明及相关方法并非必定需要此类平行处理系统,与平行处理系统相关的 系统亦可使用在本发明的系统和方法,使本发明得以和其它现有装置和方法 作整合,其亦在本发明的范围之内。请参照图2,图2示出了根据本发明的实施例的用以处理预定指令的方法。 此方法对应于图1中所述的处理系统IOO,其步骤如下所述步骤200开始步骤210设定全局程序计数器120的计数值,使其与分别具有设定的呼叫状态位 每一处理单元105的本地程序计数器的最小值相同。若没有设定的呼叫状态 位,则设定全局程序计数器120的计数值,使其与每一处理单元105的本地 程序计数器的最小值相同。步骤220取得全局程序计数器120所指向的下一指令。 步骤2 30判断对每一处理单元而言,是否全局程序计数器120与本地程序计数器 107相等 若是,到步骤280,若否,到步骤240。 步骤240判断现今指令是否为一流程控制指令?如果是,到步骤250。若否,到步 骤290。步骤25 0计算现今指令的计算域以决定流程控制结果。到步骤260。 步骤260处理单元105的计算是否确定取得流程控制结果,也就是,是否要执行分支指令?若是,到步骤295。若否,到步骤270。 步骤270设定本地程序计数器107,使其等于本地程序计数器107加一。到步骤210。步骤280保持本地程序计数器107为未改变。遮蔽缓存器文件109以防止写入被 使能。到步骤210。 步骤290执行现今指令,并设定本地程序计数器107,使其等于本地程序计数器 107加一。到步骤210。 步骤295设定本地程序计数器107,使其等于和现今执行的流程控制指令有关的 目标地址。若现今流程指令的执行进入一呼叫块,则设定呼叫状态位。若现 今流程指令的执行离开一呼叫块,则清除呼叫状态位。到步骤210。本发明的流程开始于步骤200。在步骤210中,若没有设定的呼叫状态 位,则设定全局程序计数器120的计数值,使其与每一处理单元105的本地 程序计数器107的最小值相同。然而,如先前所述,具有设定的呼叫状态位 的本地程序计数器107被指派取得和执行指令的较高次序。因此,若至少一 呼叫状态位被设定,本方法的流程将优先使能具有设定的呼叫状态位的处理 单元1D5,而不是具有被清除的呼叫状态位的处理单元105。如图2所示,全 局程序计数器120被分别具有设定的呼叫状态位每一处理单元105的本地程 序计数器的最小值设定。接着在步骤220中,下一指令根据全局程序计数器120被取得。在步骤 230中,对每一处理单元105,本发明确认全局程序计数器120 (PC一J是否 和本地程序计数器107 (PClMal)相同。若全局程序计数器120和特定本地程 序计数器107相同,则流程到步骤240,否则流程到步骤280。步骤240中, 因为两个程序计数器,全局程序计数器120和特定本地程序计数器107已被 确认为相等,因此现在本发明须确认现今指令是否为流程控制指令。若现今 指令为一流程控制指令,到步骤250,否则到步骤290。在步骤250中,此时 现今指令已被认定为是一流程控制指令,因此须计算现今流程控制指令须被 计算以决定流程控制结果。接着,到步骤260。在步骤260中,若特定处理单元105计算出要4丸行分支动作(branch taken)的结果,易而言之,即表 示处理单元105计算流程控制指令且其将取得流程控制,然后本发明到步骤295。若特定处理单元105计算出不要执行分支动作(branch not taken)的 结果,则本发明到步骤270。在步骤270中,本地程序计数器107被设定成 等于本地程序计数器107加一 (也就是,PClMal=PC,Ma)+l),然后本发明到步骤 210。回到步骤230,若全局程序计数器120未和特定本地程序计数器107相 等,流程进行至步骤280,其中本发明使本地程序计数器107保持现今值而 不改变。此外,緩存器文件109被遮蔽(mask)以防止写入被使能。接着, 流程回到步骤210。步骤240中,因为两个程序计数器,全局程序计数器120和特定本地程 序计数器107已被确认为相等,因此现在本发明须确认现今指令是否为流程 控制指令。若现今指令不为一流程控制指令,到步骤290。在步骤290中, 执行单元106执行现今指令。此外,本地程序计数器1Q7被设定成等于本地 程序计数器107加一 (也就是,PC,。cPC,織,+l),然后本发明到步骤210。回到步骤260,在步骤260中,若特定处理单元105计算出要执行分支 动作(branch taken)的结果,易而言之,即分支动作被执行,然后本发明 到步骤295 。在步骤295中,本地程序计数器IO7被设定成和现今执行的流 程控制指令有关的目标地址相等,此现今执行的流程控制指令由执行单元106 所执行,且流程回到步骤210。此外,若现今流程指令的执行进入一呼叫块, 则已被清除的呼叫状态位会被设定。然而,若现今流程指令的执行离开一呼 叫块,则清除呼叫状态位会被清除。上述的流程控制指令可为IF流程控制指令,但仅用以举例,并非用以限 定本发明,亦即,其亦可为LOOP、 REP、 BREAK、 ELSE、 ENDIF、 ENDLOOP、 ENDREP、 BREAKC...等其它种类指令。因此,本发明的范围应包含下列的方法使用已 揭露的具有本地程序计数器的流程控制结构,此结构使得预定指令包含一 IF 流程控制指令,而此IF流程控制指令并不需要具有(但亦可具有)相对应的 终端流程控制指令Endlf流程控制指令。须注意的是,比较全局程序计数器120的计数值和处理单元105中的本 地程序计数器107中的计数值的动作是用以判别具有最小本地程序计数值的 处理单元,此最小本地程序计数值由全局程序计数器120中所存储的计数值所指示。然而,亦可以采用其它实施方式。举例来it,;危禾呈4空制单元140比 较存储在处理单元105中的本地程序计数器107中的计数值以判别具有最小 本地程序计数值的处理单元。接着,指令缓沖器110根据流程控制单元140 所产生的比较结果以提供欲被执行的指令,且被判别的处理单元105中的执 行单元106被流程控制单元140使能以根据比较结果执行指令。简而言之, 流程控制单元140的动作等同于比较一参考值以及本地程序计数器107的计 数值以产生一比较结果。参考值可为存储在全局程序计数器中的计数值,另 一本地程序计数器107中的计数值,或是其它电子组件根据所须设计所给予 的值。因此,指令緩沖器110根据比较结果而提供指令,执行单元106被流 程控制单元使能以根据比较结果执行指令。综上所述,本发明提供了多数处理单元,且每一处理单元具有本地程序 计数器。且仅有具有最小本地程序计数器的执行单元执行现今指令。在坎套 或非坎套式呼叫流程控制的情况中,执行坎套或非坎套式呼叫指令的处理单 元被分类成同一群,且其本地程序计数器被优先确认是否为最小值,以得知 那一处理单元将执行现今指令。处理单元可以很容易被判别是否在一坎套式 流程控制的情况中,例如,可用一状态位或一特定变量判断之。本发明可以 在所有处理单元将计算流程控制指令时,使用和流程控制指令有关的目标地 址以藉由早期离开(early-out,也就是说,在所有的数据皆被判断采取同一 个分支动作时,可以提早离开坎套或非坎套式流程控制块,而不是一直停留 在坎套或非坎套式流程控制块中,抓取不需执行的指令来执行,最后又将其 执行结果予以屏蔽)以得到更好的效率。以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均 等变化与修饰,皆应属本发明的涵盖范围。
权利要求
1. 一种处理系统中的预定指令的处理方法,该处理系统具有多数处理单元,该处理方法包含(a)提供一全局程序计数器,并设定该全局程序计数器的计数值,以作为被执行的所述预定指令的指令;(b)指定一本地程序计数器给每一处理单元,并根据该处理单元所执行的一现今指令设定该本地程序计数器的一计数值;以及(c)根据存储在该处理单元的本地程序计数器以及该全局程序计数器的计数值,来使能至少一处理单元以执行所述预定指令中的一特定指令。
2. —种用以处理预定指令的处理系统,该处理系统包含 一指令緩沖器,用以接收并緩冲该预定指令;一全局程序计数器,耦接至该指令緩沖器,用以存储一计数值,且该计 数值是作为被执行的该预定指令的指令; 多数处理单元,其中的每一个包含 一执行单元,用以执行指令;以及一本地程序计数器,用以根据该执行单元所执行的一现今指令设定 一计数值;以及一流程控制单元,耦接至该全局程序计数器以及每一处理单元,用以根 据存储在该处理单元的该本地程序计数器以及该全局程序计数器的计数值使 能至少一处理单元以执行所述预定指令的一特定指令。
3. 如权利要求2所述的处理系统,其中,该流程控制单元在存储在该特 定处理单元中的该本地程序计数器具有和该全局程序计数器相等的计数值 时,使能一特定处理单元以执行被全局程序计数器所指向的特定指令。
4. 如权利要求3所述的处理系统,其中,该特定指令是流程控制指令以 外的其它指令,且该流程控制单元控制该特定本地程序计数器以增加存储在 该特定本地程序计数器中的该特定计数值。
5. 如权利要求3所述的处理系统,其中,该特定指令是一流程控制指令, 且该特定处理单元的该执行单元执行该流程控制指令以产生 一计算结杲,且 该流程控制单元根据该计算结果更新存储在该特定本地程序计数器中的该特 定计数值。
6. 如权利要求5所述的处理系统,其中,该流程控制单元在该计算结果 使得该流程控制或分支指令指定的分支动作不执行时,增加存储在该特定本 地程序计数器中的该特定计数值,以及该流程控制单元在该计算结果使得该 流程控制或分支指令指定的分支动作要执行时,指派对应于另一指令的一预 定目标地址给存储在该特定本地程序计数器中的该特定计数值。
7. 如权利要求2所述的处理系统,其中, 一特定处理单元中的一特定本 地程序计数器在所述处理单元的该特定处理单元未被使能以执行该特定指令 时,维持存储在所述特定本地程序计数器的 一特定计数值。
8. —种一处理系统中的预定指令的处理方法,该处理系统具有多数处理 单元,该方法包含(a) 比较存储在多数本地程序计数器中的多数计数值以产生一比较结 果,其中所述计数值分别被指派给该处理单元;(b) 根据该比较结果提供该预定指令的一指令;以及(c) 根据该比较结果使能所述处理单元中的一特定处理单元以执行该指令。
9. 一种用以处理预定指令的处理系统,包含多数本地程序计数器,耦接于多数处理单元,其中,所述本地程序计数 器分别存储多数计数值;一流程控制单元,耦"^妄于所述本地程序计数器,用以比较所述计数值;一指令缓冲器,接收并緩沖所述预定指令的一指令,并根据该流程控制 单元所产生的一比较结果提供该指令;以及一执行单元,耦接至该指令緩沖器并被该流程控制单元使能以根据该比 较结果执行该指令。
10. 如权利要求9所述的处理系统,其中,若该执行单元未被使能以执行该指令,则存储在^^皮指派给该处理单元的一本地程序计数器的一特定计数 值会被维持。
11. 如权利要求9所述的处理系统,其中,若该指令是流程控制指令以 外的其它指令,该流程控制单元更增加存储在对应该执行单元的一特定本地 程序计数器中的 一特定计数值。
12. 如权利要求9所述的处理系统,其中,若该指令为一流程控制指令, 该执行单元执行该流程控制指令以产生 一计算结杲且该流程控制单元且根据该计算结果更新存储在对应该执行单元的 一特定本地程序计数器中的 一特定 计数值。
13. 如权利要求12所述的处理系统,其中,若该计算结果使得该流程控 制或分支指令指定的分支动作不执行,该流程控制单元增加存储在该特定本 地程序计数器中的该特定计数值,而且若该计算结果使得该流程控制或分支 指令指定的分支动作要执行,该流程控制单元指派对应于另一指令的一预定 目标地址给存储在该特定本地程序计数器中的该特定计数值。
14. 一种用以处理预定指令的处理系统,包含 一本地程序计数器,耦接于一处理单元,用以存储一计数值; 一流程控制单元,耦接于该本地程序计数器,用以比较该计数值以及一参考值;一指令緩沖器,接收并緩冲所述预定指令的一指令,并根据该比较单元 所产生的一比较结果提供该指令;以及一执行单元,耦接至该指令緩沖器并被该流程控制单元使能以根据该比 较结果执行该指令。
15. 如权利要求14所述的处理系统,其中,该流程控制单元在该计数值 和该参考值相等时,使能该执行单元以执行该指令。
16. 如权利要求14所述的处理系统,其中,若该指令是流程控制指令以 外的其它指令,该流程控制单元更增加存储在对应该执行单元的该本地程序 计数器中的该计数值。
17. 如权利要求14所述的处理系统,其中,若该指令为一流程控制指令, 该执行单元执行该流程控制指令以产生一计算结果且该流程控制单元根据该计算结果更新存储在对应该执行单元的该本地程序计数器中的该特定计数值。
18. 如权利要求17所述的处理系统,其中,若该计算结果使得该流程控 制或分支指令指定的分支动作不执行,该流程控制单元增加存储在该本地程 序计数器中的该计数值,而且若该计算结果使得该流程控制或分支指令指定 的分支动作要执行,该流程控制单元指派一预定目标地址给存储在该特定本 地程序计数器中的该特定计数值,且该预定目标地址对应于另一指令。
19. 一种一处理系统中的预定指令的处理方法,该方法包含(a)比较一参考值以及存储在被指派给一处理单元的一本地程序计数器中的 一计凄U直以产生一 比命i结果;(b) 根据该比较结果提供该预定指令的一指令;(c) 根据该比较结果使能该处理单元中以执行该指令。
全文摘要
本发明的较佳实施例揭露了一种一处理系统中的预定指令的处理方法,此处理系统具有多数处理单元,此方法包含提供一全局(global)程序计数器,并设定该全局程序计数器的计数值,以作为被执行的所述预定指令的指令;指定一本地程序计数器给每一处理单元,并根据该处理单元所执行的一现今指令设定该本地(local)程序计数器的一计数值;以及根据存储在该处理单元的该本地程序计数器以及该全局程序计数器的计数值使能至少一处理单元以执行所述预定指令的一特定指令。
文档编号G06F15/80GK101231584SQ20071000407
公开日2008年7月30日 申请日期2007年1月23日 优先权日2007年1月23日
发明者阎学斌 申请人:矽统科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1