多线程处理器、编译器装置及操作系统装置制造方法

文档序号:6522275阅读:163来源:国知局
多线程处理器、编译器装置及操作系统装置制造方法
【专利摘要】一种并行执行多个线程的命令的多线程处理器(1),具有:由分别执行命令的多个运算器构成的运算器组(119);第1命令分组部(108)~第3命令分组部(110),按照每个线程,将该线程所包含的命令分组为由能够由上述多个运算器同时执行的命令构成的组;线程选择部(114),通过控制多个线程的命令的执行频度,从而按照多线程处理器(1)的每个执行周期,从多个线程中选择含有对多个运算器发行的命令的线程;以及命令发行部(115),按照多线程处理器(1)的每个执行周期,对多个运算器发行由线程选择部(114)选择的线程所包含的命令中、被分组后的组的命令。
【专利说明】多线程处理器、编译器装置及操作系统装置
[0001]本申请是2010年3月18日提交的申请号为201080009472.3、发明名称为“多线
程处理器、编译器装置及操作系统装置”的中国专利申请的分案申请。
【技术领域】
[0002]本发明涉及并行执行多个线程(thread)的多线程处理器等,尤其涉及通过控制各个线程所包含的命令的执行定时来提高各个线程的执行效率的多线程处理器等。
【背景技术】
[0003]近年来,在AV (Audio/Visual)处理的领域中,连续发表了新的编解码器(codec)或新规格等,基于软件的AV处理的需求日益提高。因此,在AV系统等中要求的处理器性能也飞跃性提高。并且,对应于所执行的软件的多任务化,开发了许多采用同时执行多个线程的多线程技术的多线程处理器。
[0004]在现有的多线程处理器中,公知有以下技术,即:按照处理器的每个执行周期来切换执行的线程的细粒度多线程(Fine-Grained Multithreading)(例如,参照专利文献I),或者以Intel公司的超线程技术为代表的、在执行周期内同时执行多个线程的同步多线程(Simultaneous Multithreading:SMT)(例如,参照非专利文献 I)等。
[0005]现有技术文献
[0006]专利文献
[0007]专利文献1:日本特开2008 - 123045号公报(图6等)
[0008]非专利文献
[0009]非专利文献1:1ntel社(平成21年2月16 日检索)、网址< URL:http://www.1ntel.com/jp/technology/hyperthread/ >
发明概要
[0010]发明要解决的问题
[0011]但是,在现有的多线程处理器中,当在线程之间竞争运算资源的情况下,用户指定或处理器实施方面的线程的优先度中处于劣势的其它线程的执行效率存在局部明显下降的情况。
[0012]并且,在各个线程的命令数与运算器资源数的平衡较差的情况下,有可能不能得到在多线程动作中期待的那样的执行效率。例如,针对具有能够同时执行4个命令的运算器资源的处理器、想要连续发行分别包含在两个线程中的2个命令和3个命令时,两个线程的合计命令数是5。因此,不能同时执行这两个线程而只执行某一个线程的命令。因此,导致一个或两个运算器资源不被使用而造成浪费,存在线程的执行效率降低的问题。
[0013]
【发明内容】

[0014]本发明是为了解决上述问题而提出的,其目的在于,提供线程的执行效率高的多线程处理器、以及适合于该多重处理器的编译器装置和操作系统装置。[0015]用于解决问题的手段
[0016]本发明的某个方面的多线程处理器,并行执行多个线程的命令,具有:分别执行命令的多个运算器;分组部,按照每个线程,将该线程所包含的命令分组为由能够由上述多个运算器同时执行的命令构成的组;线程选择部,通过控制上述多个线程的命令的执行频度,从而按照上述多线程处理器的每个执行周期,从上述多个线程中选择含有对上述多个运算器发行的命令的线程;以及命令发行部,按照上述多线程处理器的每个执行周期,对上述多个运算器发行如下命令,即:由上述线程选择部选择的上述线程所包含的命令中、由上述分组部进行分组而得到的组的命令。
[0017]根据这种结构,通过控制多个线程的执行频度,能够防止在用户指定或处理器实施方面的线程之间的优先度中处于劣势的线程的执行效率局部明显下降。此外,能够控制多个线程的执行频度以使得运算器资源能够有效利用,能够获得各个线程的命令数和运算器资源数的平衡,高效率地使用运算器资源。由此,能够提供线程的执行效率高的多线程处理器。
[0018]优选为,上述多线程处理器还具有命令数指定部,该命令数指定部按照每个线程来指定由上述分组部进行分组的上述组所包含的命令的最大个数,上述分组部以不超过由上述命令数指定部指定的上述命令的最大个数的方式对命令进行分组。
[0019]根据这种结构,能够获得各个线程的命令数和运算器资源数的平衡,高效率地使用运算器资源。
[0020]另外,优选为,上述命令数指定部按照在寄存器中设定的值来指定上述最大个数。
[0021]根据这种结构,通过在维持命令集体系的状态下利用程序来更新寄存器的设定值,能够按程序的每个任意的范围来控制上述最大个数,优化执行效率。
[0022]并且,也可以是,上述命令数指定部按照上述多个线程所包含的用于指定上述最大个数的命令来指定上述最大个数。
[0023]根据这种结构,与按照在寄存器中设定的值来指定最大个数的情况相比,能够与能够削减的地址设定和存储器访问相应地更高速地变更设定。此外,能够不必在意开销损耗而与能够高速地变更设定相应地按程序的更详细的每个任意的范围来控制上述最大个数,优化执行效率。
[0024]另外,优选为,上述线程选择部具有执行间隔指定部,该执行间隔指定部对上述多个线程分别指定在上述多个运算器中的命令的执行周期间隔,上述线程选择部按照由上述执行间隔指定部指定的执行周期间隔来选择上述线程。
[0025]根据这种结构,能够抑制优先度较高的线程长时间占用资源,能够防止优先度较低的线程的执行局部停止。
[0026]另外,优选为,上述执行间隔指定部按照在寄存器中设定的值来指定上述执行周期间隔。
[0027]根据这种结构,通过在维持命令集体系的状态下利用程序来更新寄存器的设定值,能够按程序的每个任意的范围来抑制资源占用,提高其它线程的执行效率。
[0028]并且,也可以是,上述执行间隔指定部按照上述多个线程所包含的用于指定上述执行周期间隔的命令来指定上述执行周期间隔。
[0029]根据这种结构,与按照在寄存器中设定的值来指定执行周期间隔的情况相比,能够与能够削减的地址设定、存储器访问相应地更高速地变更设定。此外,能够不必在意开销损耗而与能够高速地变更设定相应地按程序的更详细的每个任意的范围来抑制资源占用,提闻其它线程的执行效率。
[0030]另外,优选为,上述线程选择部具有发行间隔抑制部,该发行间隔抑制部针对发行了在多个线程之间引起运算器竞争的命令的线程来进行抑制,以使得引起上述竞争的命令在固定的执行周期数内无法执行。
[0031]根据这种结构,与唯一地抑制执行周期的方法不同,能够只对最小必要限度的命令进行抑制。因此,能够不降低执行效率并高效率地向其它线程让出资源。
[0032]本发明的另一个方面的编译器装置,将源程序转换为可执行代码,适合于将多个线程的命令并行执行的多线程处理器,该编译器装置具有:指示取得部,取得与多线程控制相关的编程员的指示;以及控制代码生成部,根据上述指示来生成对处理器的执行模式进行控制的代码。
[0033]根据这种结构,能够按照与多线程控制相关的编程员的指示来控制处理器的执行模式。因此,能够生成适合于线程执行效率高的多线程处理器的代码。
[0034]本发明的另一个方面的操作系统装置,适合于将多个线程的命令并行执行的多线程处理器,该操作系统装置具有系统代码处理部,该系统代码处理部根据与多线程控制相关的编程员的指示来处理系统调用,该系统调用使得处理器的执行模式能够控制。
[0035]根据这种结构,能够按照与多线程控制相关的编程员的指示来控制处理器的执行模式。因此,能够处理适合于线程执行效率高的多线程处理器的系统调用。
[0036]另外,本发明不仅能够实现为这样的具有特征性的处理部的多线程处理器,而且也能够实现为将多线程处理器所包含的特征性的处理部作为步骤的信息处理方法。此外,还能够实现为使计算机执行信息处理方法所包含的特征性步骤的程序。并且,这种程序当然能够通过⑶一 ROM (Compact Disc 一 Read Only Memory)等非易失性记录介质、因特网等通信网络而进行流通。
[0037]发明效果
[0038]根据本发明的多线程处理器等,即使是在线程之间竞争运算资源的情况下,也能够防止在用户指定及处理器实施方面的线程之间的优先度中处于劣势的线程的执行效率局部明显下降。此外,能够得到各个线程的命令数和运算器资源数的平衡,高效率地使用运算器资源。由此,能够提供线程的执行效率高的多线程处理器。
【专利附图】

【附图说明】
[0039]图1是本发明的实施方式I的多线程处理器的框图。
[0040]图2是本发明的实施方式I的线程选择部的框图。
[0041]图3是表示本发明的实施方式I的多线程处理器的动作的流程图。
[0042]图4是本发明的实施方式I的线程选择处理的流程图。
[0043]图5是表示本发明的实施方式2的编译器的结构的框图。
[0044]图6是表示本发明的实施方式2的编译器能够受理的用于多线程的控制的指示的一览的图。
[0045]图7是表示使用了“关注区间指示”的源程序的一例的图。[0046]图8是表示使用了 “非关注区间指示”的源程序的一例的图。
[0047]图9是表示使用了 “命令并行度指示”的源程序的一例的图。
[0048]图10是表示使用了“多线程执行模式指示”的源程序的一例的图。
[0049]图11是表示使用了“响应性确保区间指示”的源程序的一例的图。
[0050]图12是表示使用了“停顿插入频度指示”的源程序的一例的图。
[0051]图13是表示使用了“运算器释放频度指示”的源程序的一例的图。
[0052]图14是表示使用了 “紧迫度检测指示”的源程序的一例的图。
[0053]图15是表示使用了“执行周期期待值指示”的源程序的一例的图。
[0054]图16是表示本发明的实施方式2的操作系统的结构的框图。
【具体实施方式】
[0055]下面,参照【专利附图】
附图
【附图说明】多线程处理器等的实施方式。另外,在实施方式中标注了相同标号的构成要素进行同样的动作,因而有时省略重复说明。
[0056](实施方式I)
[0057]在本实施方式中,说明通过命令执行控制来提高命令执行效率的多线程处理器、命令数的限制、限制的命令数的基于寄存器的指定、限制的命令数的基于命令的指定、执行周期数间隔的指定、执行周期数间隔的基于寄存器的指定、执行周期数间隔的基于命令的指定、存在资源制约的命令的发行间隔的抑制。
[0058]图1是表示本实施方式的多线程处理器的结构的框图。另外,在本实施方式中,假定是能够并行执行3个线程的多线程处理器。
[0059]多线程处理器I具备:命令存储器101、第I命令解码器102、第2命令解码器103、第3命令解码器104、第I命令数指定部105、第2命令数指定部106、第3命令数指定部107、第I命令分组部108、第2命令分组部109、第3命令分组部110、第I寄存器111、第2寄存器112、第3寄存器113、线程选择部114、命令发行控制部115、线程选择器(threadselector) 116、线程用寄存器选择器117?118、以及运算器组119。
[0060]命令存储器101是对在多线程处理器I中执行的命令进行保持的存储器,保持3个独立执行的线程的命令流。
[0061]第I命令解码器102、第2命令解码器103和第3命令解码器104从命令存储器101读出彼此不同的线程的命令,并对读出的命令进行解码。
[0062]第I命令数指定部105、第2命令数指定部106和第3命令数指定部107分别指定如下命令数,即:将由第I命令解码器102、第2命令解码器103和第3命令解码器104解码后的命令分组为能够同时执行的命令组时的、能够同时执行的命令数。在本实施方式中,将命令数的上限设为3来进行说明。关于指定命令数的方法,可以是,将用于指定命令数的专用命令包含在各个线程的命令流中,通过执行该专用命令来指定命令数。或者,也可以是,设置对命令数进行设定的专用寄存器,由各个线程的命令流而变更专用寄存器的值来指定命令数。
[0063]在通过执行专用命令来指定命令数的情况下,不存在因地址设定、寄存器访问而引起的开销损耗(overhead loss)。因此,能够高速地实现命令数的变更。此外,通过预先在线程的多个位置插入上述专用命令,能够在线程内的多个命令范围中指定不同的命令数。对专用寄存器来设定命令数的情况下,能够在维持命令集(instruction set)的体系的状态下对同时执行的命令数进行控制。
[0064]通过与运算器资源的数量、能够同时执行的线程数的平衡相应地变更命令数的指定,能够提高命令执行效率。例如,在运算器是4个、能够同时执行的线程数是2个的情况下,如果预先将命令数的上限设为2,则两个线程各使用两个运算器。但是,如果预先将命令数的上限设为3,则对于各个线程,最大将3个命令分组到一个命令组。因此,例如,在两个线程中、一个线程的命令组所包含的命令数是3而另一个线程的命令组所包含的命令数是2的情况下,则只能执行某一个线程,产生未使用的运算器,因此导致线程的执行效率下降。
[0065]第I命令分组部108、第2命令分组部109和第3命令分组部110将由第I命令解码器102、第2命令解码器103和第3命令解码器104分别解码后的命令分组为能够同时执行的命令组。另外,在进行分组时,以不超过由第I命令数指定部105、第2命令数指定部106和第3命令数指定部107设定的命令数的方式进行命令的分组。
[0066]第I寄存器111、第2寄存器112和第3寄存器113是在基于各个线程的命令的运算时使用的寄存器堆(register file)。
[0067]线程选择部114保持与线程优先度相关的设定信息,根据线程的执行状况来选择执行的线程。假设线程优先度是预先设定的。
[0068]命令发行控制部115控制线程选择器116、线程用寄存器选择器117和118,以便对运算器组119发行由线程选择部114选择的线程。此外,命令发行控制部115将与已对运算器组119发行的线程相关的发行命令信息通知线程选择部114。另外,本实施方式中将能够同时执行的线程数设为2。
[0069]线程选择器116是按照命令发行控制部115的指示来选择执行线程(由运算器组119执行命令的线程)的选择器。
[0070]线程用寄存器选择器117?118是与线程选择器116同样地按照命令发行控制部115的指示来选择与执行线程成套的寄存器的选择器。
[0071]运算器组119包含加法器或乘法器等多个运算器。在本实施方式中,将能够同时执行的运算器数量设为4。
[0072]图2是表示图1所示的线程选择部114的具体结构的框图。
[0073]线程选择部114具有第I发行间隔抑制部201、第2发行间隔抑制部202、第3发行间隔抑制部203、第I执行间隔指定部204、第2执行间隔指定部205和第3执行间隔指定部206。
[0074]第I发行间隔抑制部201、第2发行间隔抑制部202和第3发行间隔抑制部203分别进行控制,以使得在从所分配的线程发行了由于运算器组119的运算器数量限制等而不能同时执行的命令的情况下,在此后的固定期间中不对该线程发行该命令。
[0075]第I执行间隔指定部204、第2执行间隔指定部205和第3执行间隔指定部206分别指定线程的执行间隔,以使得按照固定间隔来执行所分配的线程。关于指定执行间隔的方法,可以是,将用于指定执行间隔的专用命令包含在各个线程的命令流中,通过执行该专用命令来指定执行间隔。或者,也可以是,设置对执行间隔进行设定的专用寄存器,由各个线程的命令流而变更专用寄存器的值来指定执行间隔。通过指定执行间隔,能够抑制优先度高的线程长时间占用资源,能够防止低优先度的线程的执行发生局部停止。在通过执行专用命令来指定执行间隔的情况下,不存在因地址设定、寄存器访问而引起的开销损耗。并且,通过预先在线程的多个位置插入上述专用命令,能够在线程内的多个命令范围中指定不同的执行间隔。对专用寄存器设定执行间隔的情况下,能够在维持命令集的体系的状态下对执行间隔进行控制。
[0076]另外,在本实施方式中,第I发行间隔抑制部201、第2发行间隔抑制部202、第3发行间隔抑制部203、第I执行间隔指定部204、第2执行间隔指定部205以及第3执行间隔指定部206分别包含减计数器,该减计数器在每当执行周期经过时使值减I。
[0077]下面,为了方便而将3个线程称为线程A、线程B、线程C。利用第I命令解码器102、第I命令数指定部105、第I命令分组部108、第I寄存器111、第I发行间隔抑制部201和第I执行间隔指定部204来执行线程A。利用第2命令解码器103、第2命令数指定部106、第2命令分组部109、第2寄存器112、第2发行间隔抑制部202和第2执行间隔指定部205来执行线程B。利用第3命令解码器104、第3命令数指定部107、第3命令分组部110、第3寄存器113、第3发行间隔抑制部203和第3执行间隔指定部206来执行线程C。
[0078]下面,说明多线程处理器I的动作。
[0079]图3是表示多线程处理器I的动作的流程图。
[0080]第I命令解码器102、第2命令解码器103和第3命令解码器104分别对在命令存储器101中存储的线程A、B和C的命令流进行解码(步骤SOOl )。
[0081]第I命令分组部108将由第I命令数指定部105指定的命令数作为上限,将在第I命令解码器102中识别出的线程A的命令流分组为由能够被运算器组119同时执行的命令构成的命令组。同样,第2命令分组部109将由第2命令数指定部106指定的命令数作为上限,将在第2命令解码器103中识别出的线程B的命令流分组为由能够被运算器组119同时执行的命令构成的命令组。并且,第3命令分组部110将由第3命令数指定部107指定的命令数作为上限,将在第3命令解码器104中识别出的线程C的命令流分组为由能够被运算器组119同时执行的命令构成的命令组(步骤S002)。
[0082]命令发行控制部115根据与线程选择部114保持的线程优先度相关的设定信息、和通过步骤S002的处理而被分组后的命令的信息,确定两个能够执行的线程(步骤S003)。在此,假设线程A和C是被确定为能够执行的线程来进行以后的说明。
[0083]线程选择器116选择线程A和C作为执行线程。此外,线程用寄存器选择器117选择与线程A和C对应的第I寄存器111和第3寄存器113。运算器组119利用在由线程用寄存器选择器117选择的寄存器(第I寄存器111和第3寄存器113)中存储的数据,执行由线程选择器116选择的线程(线程A和C)的运算(步骤S004)。
[0084]线程用寄存器选择器118选择与线程用寄存器选择器117选择的寄存器相同的寄存器(第I寄存器111和第3寄存器113)。运算器组119将线程(线程A和C)的运算结果写入到线程用寄存器选择器118选择的寄存器(第I寄存器111和第3寄存器113)中(步骤 S005)。
[0085]接着,使用图4的流程图说明基于线程选择部114和命令发行控制部115的线程选择处理。
[0086]另外,在本说明中,在从线程A发行了后述的发行间隔抑制命令的情况下,第I发行间隔抑制部201在这之后抑制(禁止)在两个机器周期(machine cycle)之间发行该发行间隔抑制命令。在此,发行间隔抑制命令是指在多个线程之间引起运算器的竞争的命令。同样,在从线程B发行了发行间隔抑制命令的情况下,第2发行间隔抑制部202在这之后抑制(禁止)在两个机器周期之间发行该发行间隔抑制命令。并且,在从线程C发行了发行间隔抑制命令的情况下,第3发行间隔抑制部203在这之后抑制(禁止)在两个机器周期之间发行该发行间隔抑制命令。这样,能够只对必要最小限度的命令进行抑制。因此,能够不降低执行效率而高效率地向其它线程让出资源。
[0087]此外,假定为,第I执行间隔指定部204指定执行周期间隔,以使得运算器组119能够在两个机器周期中执行一次线程A的命令。同样,假设为,第2执行间隔指定部205指定执行周期间隔,以使得运算器组119能够在两个机器周期中执行一次线程B的命令。并且,假设为,第3执行间隔指定部206指定执行周期间隔,以使得运算器组119能够在两个机器周期中执行一次线程C的命令。
[0088]此外,关于线程的优先度,假设线程A最高,其次线程B较高,线程C最低。
[0089]下面,假设在关注的机器周期的前一个机器周期中执行线程A和C、且利用线程A发行了发行间隔抑制命令,来对关注的机器周期的动作进行说明。另外,将要说明的动作是第I回的动作,为了与后面叙述的第2回的动作进行区分,对各个步骤的步骤序号赋予表示第I回的“一 I”。在第I回开始时,假设对第I发行间隔抑制部201、第2发行间隔抑制部202和第3发行间隔抑制部203的减计数器设定了 O。此外,假设对第I执行间隔指定部204、第2执行间隔指定部205和第3执行间隔指定部206的减计数器设定了 O。
[0090]线程选择部114从命令发行控制部115取得在之前的机器周期中执行的线程A和C的执行状况(步骤SlOl -1)。即,取得如下信息,该信息表示线程A和C的已执行(已发行)的命令是否是发行间隔抑制命令。在此,假设线程选择部114取得了表示线程A的已执行的命令是发行间隔抑制命令这一情况的信息。
[0091]由于执行了线程A的发行间隔抑制命令,因而第I发行间隔抑制部201对其减计数器设定2,以作为对该发行间隔抑制命令的发行进行抑制的周期数(步骤S102 -1)。此夕卜,由于执行了线程A和C,因而第I执行间隔指定部204和第3执行间隔指定部206对各自的减计数器的值设定I。
[0092]由于第I执行间隔指定部204和第3执行间隔指定部206的减计数器的值是I不是0,因而线程选择部114判定为不能执行线程A和C。并且,由于第2执行间隔指定部205的减计数器的值是0,因而线程选择部114判定为能够执行线程B。因此,线程选择部114只选择线程B作为执行对象线程,并通知命令发行控制部115。此外,线程选择部114将选择出的线程B的优先度最高这一情况一并进行通知(步骤S103 -1)。
[0093]命令发行控制部115根据从线程选择部114接收到的线程B的优先度信息、和表示由第2命令分组部109进行的线程B的命令的分组结果的信息,将线程B确定为执行线程(步骤S104 — Do
[0094]命令发行控制部115通过对线程选择器116以及线程用寄存器选择器117和118进行操作,从第2命令分组部109向运算器组119发送线程B的命令,从而运算器组119执行线程B的命令(步骤S105 — I)。
[0095]第I发行间隔抑制部201、第2发行间隔抑制部202、第3发行间隔抑制部203、第I执行间隔指定部204、第2执行间隔指定部205和第3执行间隔指定部206将各自的减计数器的值分别减I (步骤S106 — I)。此时,在减计数器的值是O的情况下,不进行减法而保持设定为O的状态。
[0096]在每个机器周期实施以上的步骤SlOl?S106的处理。对上述说明的下一个机器周期说明后续步骤。另外,对各个步骤的步骤序号赋予表示第2回的“一 2”。另外,假设线程A要再次执行发行间隔抑制命令来进行说明。
[0097]线程选择部114从命令发行控制部115取得在之前的机器周期中执行的线程B的执行状况(步骤SlOl - 2)。即,假设取得如下信息,该信息表示在线程B的已执行的命令中不包含发行间隔抑制命令。
[0098]由于执行了线程B,因而第2执行间隔指定部205对减计数器设定1(步骤S102 —2)。
[0099]由于第2执行间隔指定部205的减计数器的值是I不是0,因而线程选择部114判定为不能执行线程B。此外,由于第I执行间隔指定部204和第3执行间隔指定部206的减计数器的值是0,因而线程选择部114判定为能够执行线程A和C。因此,线程选择部114选择线程A和C作为执行对象线程,并通知命令发行控制部115。此外,线程选择部114将线程A的优先度比线程B的优先度高这一情况一并通知命令发行控制部115。此外,第I发行间隔抑制部201的减计数器的值是I。因此,为了使线程A的发行间隔抑制命令不被发行,线程选择部114除了优先度信息以外、还将线程A没有发行间隔抑制命令的执行权这一情况通知命令发行控制部115 (步骤S103 — 2)。
[0100]命令发行控制部115根据从线程选择部114接收到的线程A和C的优先度信息以及发行间隔抑制命令的信息、和表示由第I命令分组部108和第3命令分组部110进行的线程A和C的命令的分组结果的信息,判断为线程A是由于发行间隔抑制命令的限制而不能执行的线程,将线程C确定为执行线程(步骤S104 - 2)。
[0101 ] 命令发行控制部115通过对线程选择器116、线程用寄存器选择器117和118进行操作,从第3命令分组部110向运算器组119发送线程C的命令,从而运算器组119执行线程C的命令(步骤S105 — 2)。
[0102]第I发行间隔抑制部201、第2发行间隔抑制部202、第3发行间隔抑制部203、第I执行间隔指定部204、第2执行间隔指定部205和第3执行间隔指定部206将各自的减计数器的值分别减I (步骤S106 — 2)。此时,在减计数器的值是0的情况下,不进行减法而保持设定为0的状态。
[0103]另外,在图4的流程图中,通过多线程处理器I的电源断开或复位来结束处理。
[0104]如以上说明的那样,根据实施方式I的多线程处理器1,即使是在线程之间竞争运算资源的情况下,也能够防止在用户指定或处理器实施方面的线程间的优先度中处于劣势的线程的执行效率局部明显下降。此外,能够得到各个线程的命令数和运算器资源数的平衡,高效率地使用运算器资源。
[0105]另外,根据本实施方式,将线程数设为3,但是不限于该值,当然能够进行各种变更,而且这些变更都包含在本发明的范围内。
[0106]并且,根据本实施方式,将同时命令发行数上限设为3,但是不限于该值,当然能够进行各种变更,而且这些变更都包含在本发明的范围内。
[0107]并且,根据本实施方式,将能够同时执行的线程数的上限设为2,但是不限于该值,当然能够进行各种变更,而且这些变更都包含在本发明的范围内。
[0108]并且,根据本实施方式,将能够同时执行的运算器数的上限设为4,但是不限于该值,当然能够进行各种变更,而且这些变更都包含在本发明的范围内。
[0109](实施方式2)
[0110]下面,参照【专利附图】
附图
【附图说明】本发明的实施方式2的编译器和操作系统。
[0111]图5是表示本发明的实施方式2的编译器3的结构的框图。
[0112]编译器3接受编程员利用C语言记述的源程序301作为输入,转换为内部的中间表现(中间代码)并实施了优化、资源的分配后,生成适合于目标处理器的可执行代码302。被编译器3作为目标的处理器是在实施方式I中说明的多线程处理器I。
[0113]下面,说明本发明的编译器3的各个构成要素的详细结构及其动作。另外,编译器3是一种程序,通过在具有处理器和存储器的计算机上执行用于实现编译器3的各个构成要素的程序来实现其功能。这样的程序当然能够通过CD - ROM等非易失性记录介质、因特网等通信网络而进行流通。
[0114]编译器3,作为在计算机上被执行的情况下发挥作用的处理部,具有句法分析(parser)部31、优化部32和代码生成部33。编译器3通过使计算机作为这些处理部而发挥作用,能够使计算机作为编译器装置进行动作。
[0115]句法分析部31对输入到编译器3的源程序301提取保留字(关键字)等并进行词法分析和语法分析,根据固定规则将各个语句转换为中间代码。
[0116]优化部32对所输入的中间代码实施冗余去除、命令调度或寄存器分配等优化处理。
[0117]代码生成部33,对于从优化部32输出的中间代码,通过参照在内部保持的转换表等,将全部代码置换为机器语言代码。由此,生成可执行代码302。
[0118]优化部32具有多线程执行控制指示解释部321、命令调度部322、执行状态检测代码生成部323和执行控制代码生成部324。命令调度部322具有响应性确保调度部3221。
[0119]多线程执行控制指示解释部321受理由编程员进行的用于控制多线程执行的指示,作为编译选项(compile option)、pragma指令(# pragma)或内部函数(intrinsicfunction).多线程执行控制指示解释部321将所受理的指示存储到中间代码中,并传递给后级的命令调度部322等。
[0120]图6是表示多线程执行控制指示解释部321受理的用于多线程执行控制的指示的一览的图。下面,关于图6所示的各个指示,参照使用该指示的源程序301的示例进行说明。
[0121]参照图7, “关注区间指不”利用“ # pragma_focus begin” 和“ # pragma_focusend”将相比其它线程应该关注的源程序301中的区间包围起来从而进行指定。根据该指示,编译器3进行控制,以使得重点对该区间分配处理器周期、运算资源。
[0122]参照图8, “非关注区间指不”利用“ # pragma_unfocus begin” 和“ # pragma_unfocus end”将相比其它线程不怎么需要关注的源程序301中的区间包围起来从而进行指定。根据该指示,编译器3进行控制,以使得不怎么对该区间分配处理器周期、运算资源。
[0123]参照图9,“命令并行度指示”用于指定源程序301中被“ # pragma ILP =‘num’ begin”和“ # pragma ILP end”包围起来的区间的命令并行度。对‘num’部分指定I?3中的任意一个数字,编译器3生成用于设定所指定的动作模式的代码,并实施假设了所指定的命令并行度的命令调度。图9示出了对‘num’指定“3”的命令并行度指示。SP,指定“3”作为由“# pragma ILP = 3begin”和“# pragma ILP end”包围起来的区间的命令并彳丁度。
[0124]参照图10,“多线程执行模式指示”用于使源程序301中被“ # pragma_single_thread begin”和“ # pragma_single_thread end”包围起来的区间仅在自身线程的单线程模式下进行动作。根据该指示,编译器3生成对动作模式进行设定的代码、即在上述区间中将线程的执行数设为一个的代码。
[0125]参照图11,“响应性确保区间指示”用于针对源程序301中被“ # pragma_response=‘num’begin”和“# pragma_response end”包围起来的区间来指定其它线程最低限度能够响应的频度。对‘num’部分指定表示应该最低限度几个周期能够执行一次其它线程的数值,编译器3调整自身线程的生成代码以使得满足指定条件。在图11中示出了对‘num’指定“10”的响应性确保区间指示。S卩,该指示用于使在由“# pragma_response = lObegin”和“ # pragma_response end”包围的区间中、在10个周期中有一个周期执行其它线程,以满足该指示的方式生成代码。例如,生成按照固定频度来插入停顿周期(stall cycle)的代码、按照固定周期来释放运算器资源的代码。
[0126]参照图12,“停顿插入频度指示”用于针对源程序301中被“ # pragma_stall_freq=‘num’begin”和“# pragma_stall_freq end”包围起来的区间来指定产生最低限度一个停顿周期的频度。对‘num’部分指定表示应该最低限度几个周期产生一次停顿的数值,编译器3插入适当的停顿周期以使得满足指定条件。图12示出了对‘num’指定“10”的停顿插入频度指示。S卩,生成代码,以使得在由“# pragma_stall_freq = lObegin”和“# pragma_stall_freq end”包围起来的区间中、在10个周期中有I个周期产生停顿周期。
[0127]参照图13,“运算器释放频度指示”用于针对源程序301中被“ # pragma_release_freq = ‘res’: ‘num’begin”和“# pragma_release_freq end”包围起来的区间来指定对于所指定的运算器产生最低限度一次未使用的周期的频度。对‘res’部分能够指定‘mul’或者‘mem’作为运算器的种类,‘mul’表示乘法器,‘mem’表示存储器访问装置。对‘num’部分指定表示应该最低限度几个周期产生一次所指定的运算器的未使用周期的数值,编译器3调整生成代码以使得满足指定条件。图13示出了对‘res’指定‘mul’、对‘num’指定“10”的运算器释放频度指示。S卩,生成代码,以使得在由“ # pragma_release_freq =mul: lObegin”和“ # pragma_release_freqend”包围的区间中、在10个周期中有I个周期产生不使用所指定的运算器即乘法器的周期。
[0128]参照图14,“紧迫度(tightness)检测指示”是一种内部函数的集,用于检测对于所期待的执行周期数紧迫到何种程度。利用函数_get_tightness_start()指定源程序301中的周期数计测区间的起点。能够利用函数_get_tightness(num)得到紧迫度。对自变量‘num’指定自起点起的执行周期数的期待值或应保证值,该函数将实际的执行周期数与所指定的数值之比返回。图14示出了对‘num’指定“1000”的紧迫度检测指示。由此,如果实际的执行周期数是n,则函数_get_tightness_start (1000)返回n/1000。
[0129]此外,编程员利用该函数能够得到处理的紧迫度,能够对与紧迫度对应的控制进行编程。例如,在紧迫度大于I的情况下,可以生成使运算器资源减少或使命令并行度减少的代码。并且,在紧迫度小于I的情况下,可以生成使运算器资源增加或使命令并行度增加的代码。
[0130]参照图15,“执行周期期待值指示”是用于指示所期待的执行周期数的内部函数的集。利用函指定源程序301中的周期数计测区间的起点。利用函数_expected_cycle(num)指定执行周期数的期待值。对自变量‘num’指定自起点起的执行周期数的期待值或应保证值。根据编程员利用该函数而指定的期待值,编译器3或操作系统4能够导出实际的处理的紧迫度,并自动实施适当的执行周期数的控制。[0131]“自动控制指示”是一种编译选项,指示出实施自动多线程执行控制。利用一auto — MT — control = OS选项来指示操作系统4的自动控制,利用一 auto — MT —control = COMPILER选项来指示编译器3的自动控制。
[0132]再次参照图5,命令调度部322保持所输入的命令组之间的依存关系并适当进行命令的再排列,由此实施使执行效率提高的优化。另外,在进行命令的再排列时,假定命令等级的并行度来实施再排列。在前述的指示中,对于进行“关注区间指示”的区间假设并行度为3,对于进行“非关注区间指示”的区间假设并行度为1,对于进行“命令并行度指示”的区间假设为遵从指示的并行度。在缺省情况下假设并行度为3。
[0133]并且,对于进行“多线程执行模式指示”的区间,假设不存在其它线程而只有自身线程在处理器上动作,来实施命令调度。
[0134]命令调度部322具有响应性确保调度部3221。
[0135]响应性确保调度部3221,对于进行前述“响应性确保区间指示”或“停顿插入频度指示”的区间,从开头开始按顺序搜索周期,在所指定的数值的周期数的停顿不发生的周期连续的情况下,插入使停顿发生的“nop”命令,并从下一个命令开始继续搜索。由此,其它线程对所指定的周期在I个周期能够可靠地执行命令。
[0136]并且,对于进行前述“运算器释放频度指示”的区间,进行命令调度时,对使用所指定的运算器的周期进行计数,计数器达到所指定的数值的情况下假设在下一个周期中不能使用该运算器,从而进行调度。如果产生不使用该运算器的周期,则对计数进行复位。由此,其它线程对所指定的周期在I周期能够使用该运算器。
[0137]执行状态检测代码生成部323对应于前述指示来插入用于检测执行状态的代码。
[0138]具体地讲,对应于前述“紧迫度检测指示”,在记述有函数_get_tightness_start ()的部分中插入用于使处理器的周期计数开始的系统调用(system call)。并且,在记述有函数_get_tightness(num)的部分中插入:将处理器的周期计数值读出的系统调用;以及将用所读出的计数值除以对num赋予的期待值而得到的值作为紧迫度来返回的代码。编程员能够根据该返回值得知处理的紧迫度。
[0139]此外,对应于前述“执行周期期待值指示”,在记述有函数_以?6(^6(1_(^(316_StartO的部分中插入用于使处理器的周期计数开始的系统调用。能够对应于各个指示而独立地进行周期计数。
[0140]并且,作为自动控制指示的编译选项一 auto -MT- control而指定了 OS的情况下,在记述有函数_61口6(^6(1_07(316 (num)的部分中插入用于将由num指示的执行周期数的期待值传递给操作系统4而敦促执行控制的系统调用。与此对应地,能够由操作系统4实施执行控制。
[0141]此外,作为自动控制指示的编译选项一 auto - MT - control而指定了 COMPILER的情况下,在记述有函数_expected_cycle (num)的部分中插入将处理器的周期计数读出的系统调用,用所读出的计数值除以对num赋予的期待值来计算紧迫度,在紧迫度为0.8以上的情况下,插入进行与后述的“关注区间”对应的控制的代码,在紧迫度小于0.8的情况下,插入进行与后述的“非关注区间”对应的控制的代码。由此,编译器能够自动生成对与紧迫度对应的多线程执行控制进行实施的代码。
[0142]执行控制代码生成部324插入用于对应于前述指示来对执行进行控制的代码。
[0143]具体地讲,对应于“关注区间指示”,在区间的begin的部分中插入将命令并行度设定为3的系统调用,在区间的end的部分中插入恢复为原来的设定的系统调用。
[0144]并且,对应于“非关注区间指示”,在区间的begin的部分中插入将命令并行度设定为I的系统调用、和设定为使其它线程的周期不中断的执行模式的代码,在区间的end的部分中插入恢复为原来的设定的系统调用。
[0145]另外,对应于“命令并行度指示”,在区间的begin的部分中插入将命令并行度设定为所指定的值的系统调用,在区间的end的部分中插入恢复为原来的设定的系统调用。
[0146]另外,对应于“多线程执行模式指示命令并行度指示”,在区间的begin的部分中插入用于转移到单线程模式的系统调用,在区间的end的部分中插入恢复为原来的设定的系统调用。
[0147]并且,对应于“执行周期期待值指示”和“自动控制指示”,插入与如前所述地检测到的紧迫度相对应来进行与“非关注区间”或“关注区间”同样的控制的代码。
[0148]通过采取以上所述的编译器3的结构,在多线程处理器I中,能够控制自身线程的执行模式和处理器资源的使用状况,能够根据需要来关注自身线程的处理或对其它线程分配处理器资源。此外,即使是在关注自身线程的处理的情况下,其它线程也能够保证规定的响应性。此外,能够获得执行时的执行周期数的信息并据此按照紧迫度进行上述控制,能够实现极其精细的性能调谐(tuning)和处理器利用效率的提高。
[0149]图16是表示本发明的实施方式2的操作系统4的结构的框图。
[0150]操作系统4,作为被在计算机上执行时发挥作用的处理部,具有系统调用处理部41、进程(process)管理部42、存储器管理部43和硬件控制部44。另外,操作系统4是一种程序,通过在具有处理器和存储器的计算机上执行用于实现操作系统4的各个构成要素的程序来实现功能。这样的程序当然能够通过CD - ROM等非易失性记录介质、因特网等通信网络进行流通。操作系统4,通过使计算机作为这些处理部发挥作用,能够使计算机作为操作系统装置进行动作。另外,操作系统4动作的处理器是实施方式I所示的多线程处理器I。
[0151]进程管理部42对在操作系统4上动作的多个进程赋予优先度,据此来确定分配给各个进程的时间,并控制进程的切换等。
[0152]存储器管理部43实施如下等控制:存储器的可利用部分的管理、存储器的分配及释放、主存储与二次存储之间的交换(swap )。
[0153]系统调用处理部41提供与系统调用对应的处理,该系统调用是针对应用程序的核心服务(kernel service)。
[0154]系统调用处理部41具有多线程执行控制系统调用处理部411和紧迫度检测系统调用处理部412。[0155]多线程执行控制系统调用处理部411处理用于对处理器的多线程动作进行控制的系统调用。
[0156]具体地讲,多线程执行控制系统调用处理部411受理对前述编译器3的执行控制代码生成部324的命令并行度进行设定的系统调用,设定处理器的动作命令并行度并保存原来的命令并行度。并且,多线程执行控制系统调用处理部411受理向原来的命令并行度进行恢复的系统调用,并将处理器设定为所保存的原来的命令并行度。另外,多线程执行控制系统调用处理部411受理向单线程模式转移的系统调用,将处理器的动作模式设定为单线程模式并保存原来的线程模式。并且,多线程执行控制系统调用处理部411受理向原来的线程模式进行恢复的系统调用,并将处理器设定为所保存的原来的线程模式。
[0157]紧迫度检测系统调用处理部412处理用于检测处理的紧迫度并予以应对的系统调用。
[0158]具体地讲,紧迫度检测系统调用处理部412受理用于使前述编译器3的执行状态检测代码生成部323的处理器的周期计数开始的系统调用,获得处理器的计数器并进行使计数开始的设定。此外,紧迫度检测系统调用处理部412受理将当前的周期计数读出的系统调用,读出处理器的相应计数器的当前的计数值,并返回该值。进而,紧迫度检测系统调用处理部412受理用于传递执行周期数的期待值而敦促执行控制的系统调用,读出处理器的相应计数器的当前的计数值,根据该值和所传递的执行周期数的期待值来推导紧迫度,并实施与紧迫度对应的执行控制。在紧迫度较高的情况下,紧迫度检测系统调用处理部412提高该进程的优先度,并实施与前述“关注区间”对应的控制。另一方面,在紧迫度较低的情况下,紧迫度检测系统调用处理部412降低该进程的优先度,并实施与前述“非关注区间”对应的控制。
[0159]硬件控制部44实施在系统调用处理部41等中所需要的硬件控制用的寄存器设定和读出。
[0160]具体地讲,实施如下处理:前述命令并行度的设定和恢复、多线程动作模式的设定和恢复、周期计数器的初始化、与周期计数器的读出对应的硬件的寄存器设定和读出。
[0161]通过采取以上所述的操作系统4的结构,能够实现利用程序的多线程处理器的动作控制,能够对各个程序适当地分配处理器资源。并且,能够根据所输入的由编程员假设的执行周期数的期待值和从硬件读出的实际的执行周期的信息来检测紧迫度,并自动实施适当的控制,能够减轻编程员的调谐负担。
[0162]本发明不限于上述的实施方式,当然能够实现各种变更,并且这些变更都包含在本发明的范围内。例如,可以考虑以下所述的变形。
[0163](I)在上述实施方式2的编译器中,假设了适合于C语言的编译器系统,但是本发明不限于C语言。在采用其它编程语言的情况下,本发明也能够保持其意义。
[0164](2)在上述实施方式2的编译器中,假设了适合于高级语言的编译器系统,但是本发明不限于此。例如,同样能够将本发明应用于以汇编程序为输入的汇编器。
[0165](3)在上述实施方式2中,作为目标处理器,假设了 I个周期能够发行3个命令、能够同时使3个线程并行动作的处理器,但是本发明不限于该同时发行命令数、线程数。
[0166](4)在上述实施方式2中,作为目标处理器,假设了超标量处理器(superscalarprocessor),但是本发明不限于此。也能够将本发明应用于VLIM(Very Long InstructionWord)处理器。
[0167](5)在上述实施方式2中,作为对多线程执行控制指示解释部进行指示的方法,分别规定了 pragma指令、内部函数、编译选项,但是本发明不限于这种规定。进行pragma指令的部分也可以利用内部函数来实现,反过来也可以。并且,在汇编程序的情况下,还能够作为伪指令进行指示。
[0168](6)在上述实施方式2中,作为提供给多线程执行控制指示解释部的命令并行度指示,作为处理器假设了最少I最多3,但是本发明不限于这种指定。也可以指定位于处理器的能力的中间的2等并行度。
[0169](7)在上述实施方式2中,作为提供给多线程执行控制指示解释部的响应确保区间指示、停顿插入频度指示和运算器释放指示,提供了作为周期数的频度,但是本发明不限于这种指定。也可以用毫秒等时间进行这些指示,还可以如高、中、低那样用程度进行指示。
[0170](8)在上述实施方式2中,作为提供给多线程执行控制指示解释部的运算器释放频度指示的运算器,假设了乘法器和存储器访问,但是本发明不限于这种指示。也可以指示其它运算器,还可以用更细的单位进行指示以使得对加载(load)和储存(storage)进行区分等。
[0171](9)在上述实施方式2中,在提供给多线程执行控制指示解释部的紧迫度检测指示和执行周期期待值指示中,用周期数来提供期待值,但是本发明不限于这种指示。也可以用毫秒等时间进行指示,还可以如大、中、小那样用程度进行指示。
[0172](10)在上述实施方式2的操作系统中,假设了伴随有进程管理和存储器管理的通用操作系统,但是也可以是诸如缩小了功能的设备驱动程序(device driver)那样的操作系统。即使在这种形态下,也能够通过API进行硬件的适当控制。
[0173]另外,也可以将上述实施方式和上述变形例分别进行组合。
[0174]此次公开的实施方式在所有方面上都仅是示例,不能认为是限制性的方式。本发明的范围不在于上述的说明,而包含由请求保护的范围所示、与请求保护的范围同等意义及范围内的所有变更。
[0175]产业上的可利用性
[0176]如上所述,本发明的多线程处理器,即使是在线程之间竞争运算资源的情况下也具有如下效果,即:能够防止在用户指定、处理器实施方面的线程之间的优先度中处于劣势的线程的执行效率局部明显下降,并且能够取得各个线程的命令数和运算器资源数的平衡而实现高效率的多线程执行,因而可以应用于多线程处理器和使用该多线程处理器的应用软件等。
[0177]附图标记说明
[0178]I 多线程处理器
[0179]3 编译器
[0180]4 操作系统
[0181]31 句法分析部
[0182]32 优化部
[0183]33 代码生成部
[0184]41 系统调用处理部[0185]42进程管理部
[0186]43存储器管理部
[0187]44硬件控制部
[0188]101命令存储器
[0189]102第I命令解码器
[0190]103第2命令解码器
[0191]104第3命令解码器
[0192]105第I命令数指定部
[0193]106第2命令数指定部
[0194]107第3命令数指定部
[0195]108第I命令分组部
[0196]109第2命令分组部
[0197]110第3命令分组部
[0198]111第I寄存器
[0199]112第2寄存器
[0200]113第3寄存器
[0201]114线程选择部
[0202]115命令发行控制部
[0203]116线程选择器
[0204]117,118线程用寄存器选择器
[0205]119运算器组
[0206]201第I发行间隔抑制部
[0207]202第2发行间隔抑制部
[0208]203第3发行间隔抑制部
[0209]204第I执行间隔指定部
[0210]205第2执行间隔指定部
[0211]206第3执行间隔指定部
[0212]301源程序
[0213]302可执行代码
[0214]321多线程执行控制指示解释部
[0215]322命令调度部
[0216]323执行状态检测代码生成部
[0217]324执行控制代码生成部
[0218]411多线程执行控制系统调用处理部
[0219]412紧迫度检测系统调用处理部
[0220]3221响应性确保调度部
【权利要求】
1.一种编译器装置,将源程序转换为可执行代码,适合于将多个线程的命令并行执行的多线程处理器, 该编译器装置具有: 指示取得部,取得与多线程控制相关的编程员的指示;以及 控制代码生成部,根据上述指示来生成对处理器的执行模式进行控制的代码。
2.根据权利要求1所述的编译器装置,其中, 上述指示取得部取得对并行执行进行关注的指示。
3.根据权利要求1所述的编译器装置,其中, 上述指示取得部取得不对并行执行进行关注的指示。
4.根据权利要求2或3所述的编译器装置,其中, 上述控制代码生成部根据上述指示来生成使运算器数增减的代码。
5.根据权利要求1所述的编译器装置,其中, 上述指示取得部取得关于命令并行度的指示, 上述控制代码生成部生成按上述命令并行度来执行线程的代码。
6.根据权利要求1所述的编译器装置,其中, 上述指示取得部取得关于线程的执行数的指示。
7.根据权利要求6所述的编译器装置,其中, 上述指示取得部取得关于单线程执行的指示。
8.根据权利要求6或7所述的编译器装置,其中, 上述控制代码生成部根据上述指示来生成对线程的执行数进行控制的代码。
9.根据权利要求1所述的编译器装置,其中, 上述指示取得部取得与线程的响应性的确保相关的指示。
10.根据权利要求1所述的编译器装置,其中, 上述指示取得部取得与产生停顿周期的频度相关的指示。
11.根据权利要求1所述的编译器装置,其中, 上述指示取得部取得与运算器资源的释放相关的指示。
12.根据权利要求9~11中任意一项所述的编译器装置,其中, 上述控制代码生成部根据上述指示来生成按固定频度插入停顿周期的代码。
13.根据权利要求9~11中任意一项所述的编译器装置,其中, 上述控制代码生成部根据上述指示来生成按固定频度释放运算器资源的代码。
14.根据权利要求1~3、5~7、9~11中任意一项所述的编译器装置,其中, 上述指示是指针对上述源程序中的固定区间的指示。
15.一种编译器装置,将源程序转换为可执行代码,适合于将多个线程的命令并行执行的多线程处理器, 该编译器装置具有用于检测处理的紧迫度的接口。
16.根据权利要求15所述的编译器装置,其中, 上述接口是对使周期计数开始的地点进行指示的接口。
17.根据权利要求15所述的编译器装置,其中, 上述接口是对上述紧迫度的测定地点中的周期数的期待值进行输入的接口。
18.根据权利要求17所述的编译器装置,其中, 上述接口是返回根据上述期待值和实际周期数导出的紧迫度的接口。
19.根据权利要求15~18中任意一项所述的编译器装置,其中, 上述编译器装置还具有代码生成部,该代码生成部生成与上述紧迫度对应的处理。
20.根据权利要求19所述的编译器装置,其中, 上述代码生成部按照上述紧迫度来生成使运算器资源增减的代码。
21.根据权利要求19所述的编译器装置,其中, 上述代码生成部按照上述紧迫度来生成使命令并行度增减的代码。
22.根据权利要求15~18中任意一项所述的编译器装置,其中, 上述接口通过编译器装置的内部函数而实现。
23.一种操作系统装置,适合于将多个线程的命令并行执行的多线程处理器, 该操作系统装置具有系统代码处理部,该系统代码处理部根据与多线程控制相关的编程员的指示来处理系统调用,该系统调用使得处理器的执行模式能够控制。
24.根据权利要求23所述的操作系统装置,其中, 上述系统调用是与命令并行度相关的系统调用。`
25.根据权利要求23所述的操作系统装置,其中, 上述系统调用是与线程的执行数相关的系统调用。
26.根据权利要求23所述的操作系统装置,其中, 上述系统调用是与周期计数相关的系统调用。
27.根据权利要求23所述的操作系统装置,其中, 上述系统调用是实施与紧迫度对应的处理的系统调用。
【文档编号】G06F9/38GK103631567SQ201310647848
【公开日】2014年3月12日 申请日期:2010年3月18日 优先权日:2009年5月28日
【发明者】古贺义宏, 瓶子岳人 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1