多线程处理器的制作方法

文档序号:6614252阅读:134来源:国知局
专利名称:多线程处理器的制作方法
技术领域
本发明涉及多线程处理器,通过并联地发行多个指令流的指令, 从而高效率地使用多个运算单元。
背景技术
对被数字化的影像数据、声音数据等进行压縮、扩展等的媒体 处理的运算量极大。因此,用于进行媒体处理的专用硬件、高性能
DSP(Digital Signal Processor :数字信号处理器)等正在普及。
在这些媒体处理中MPEG(Moving Picture Experts Group :运动 图像专家组)2、 MPEG4、 H.263、 H.264等许多标准已经被实用化。 因此,需要数字AV(Audio-Visual :视频音频)机器对应多个标准的 媒体处理。再者,呈现出了如下趋向,即,各个媒体处理应用程序 越来越复杂,图像大小、声音频道数等不断增多,并且大运算量不 断增大。
针对这些状况采用的方法是,如上所述向数字AV机器搭载用 于进行媒体处理的专用硬件的方法,以及通过使用软件来实现灵活 的处理的方法等。
搭载专用硬件的方法中存在的问题是,虽然可以实现高性能的 处理,但是若需要实现的功能变多,就会使电路规模变大。并且,
还存在的问题是,在追加新的功能时还需要追加硬件。
另外,若根据通过使用软件实现的媒体处理的方法,可以对应 多个功能的实现、追加。另一方面,通过使用软件实现的媒体处理 的方法中存在的问题是,其性能低于搭载专用硬件的方法。
于是,通过使用高性能多线程处理器来试图提高性能,在该多 线程处理器中通过同时执行多个程序来大幅度地提高了运算效率 (例如参照,(例如参照,"A Multithreaded Processor Architecture withSimultaneous Instruction Issuing, "In SUPERCOMPUTER, 49, volume IX, number3, May 1992 )。
然而,对于通过使用多线程处理器来实现的媒体处理的方法, 在向多个程序分配性能的方面存在问题。
具体而言,存在的问题是,由于向影像处理用线程、声音处理 用线程分配的时间不够,因此影像处理、声音处理跟不上,从而产 生影像的空帧、声音的跳音等。
如此,对于需要实时性的线程,应该保证在一定期间内结束一 定处理。为此,必要准确地估算对各个线程需要的处理时间。
鉴于这些状况,本发明的目的在于提供一种多线程处理器,可 以准确地估算对各个线程需要的处理时间。
并且,本发明的目的在于提供一种多线程处理器,对于需要实 时性的线程,可以保证在一定的期间内结束一定的处理。
为了实现上述目的,本发明涉及的多线程处理器,同时执行多 个指令流,其特征在于,包括多个运算器,执行多个指令;分组
单元,按每个所述指令流,对在该指令流中包含的指令进行分组,
从而分为由可以向所述多个运算器同时发行的指令组成的组;指令 缓冲器,以由所述分组单元分成的组为单位,并按每个所述指令流 保存在该指令流中包含的指令;以及指令发行单元,按多线程处理 器的每个执行周期,以组为单位从所述指令缓冲器读出指令,并向 所述多个运算器发行读出后的所述指令。
按照每个指令,对在该指令流中包含的指令进行分组。据此, 按照每个指令流,可以计数组数。于是,即可以准确地估算对各个 线程需要的处理时间,各个线程即是各个指令流。
优选的是,如权利要求1所述的多线程处理器,其特征在于, 还包括第一优先级队列,存储多个指令流标识符;以及优先级决 定单元,按所述多线程处理器的每个执行周期,对所述第一优先级 队列中的至少一个以上的所述指令流标识符进行切换的同时还进行
顺序排列,之后选择至少一个以上的所述指令流标识符,将所选择 的所述至少一个以上的所述指令流标识符决定为优先级信息,所述 指令发行单元,按多线程处理器的每个执行周期,根据由所述优先 级决定单元决定的所述优先级信息决定指令流,从所述指令缓冲器 读出该指令流中的一组指令,向所述多个运算器发行读出后的所述 指令。
优先级决定单元,按每个执行周期变更优先级信息。并且,指 令发行单元,根据按每个执行周期变更的优先级信息,决定指令流, 发行该指令流的指令。据此,可以向由优先级信息确定的指令流分 配一定的性能,并且对于需要实时性的线程(指令流),可以保证在一 定的期间内结束一定的处理。
根据本发明,可以提供一种多线程处理器,可以准确地估算对 各个线程需要的处理时间。
并且,也可以提供一种处理器,对于需要实时性的线程(指令流), 可以保证在一定的期间内结束一定的处理。


图1是实施例1涉及的多线程处理器的硬件的结构方框图。
图2是用于说明实施例1涉及的指令存储器、指令解码器、指 令调度器、第一指令缓冲器 第N指令缓冲器的工作的图。
图3A及图3B是用于说明实施例1涉及的指令调度器对单一指 令流的指令进行的调度处理的图。
图4是用于说明使用实施例1涉及的第一指令缓冲器 第N指 令缓冲器、第一寄存器文件 第N寄存器文件、运算器群组以及回 写总线的细粒度多线程处理的图。
图5是用于说明实施例1涉及的优先级决定部以及发行指令决 定部的工作的图。
图6是用于说明实施例1涉及的多线程处理器中向各个虚拟处 理器分配的性能的图。
图7是用于说明实施例2涉及的优先级决定部以及发行指令决
定部的结构以及工作的图。
图8是用于说明实施例2涉及的多线程处理器中向各个虚拟处 理器分配的性能的图。
图9是用于说明实施例3涉及的多线程处理器中向各个虚拟处 理器分配的性能的图。
图10是用于说明使用实施例4涉及的第一指令缓冲器 第N指 令缓冲器、第一寄存器文件 第N寄存器文件、运算器群组以及回
写总线的细粒度多线程处理的图。
图11是用于说明实施例4涉及的多线程处理器中向各个虚拟处
理器分配的性能的图。
图12是用于说明实施例5涉及的多线程处理器中向各个虚拟处 理器分配的性能的图。
图13是用于说明实施例6涉及的优先级决定部以及发行指令决
定部的结构以及工作的图。
图14是用于说明实施例6涉及的多线程处理器中向各个虚理器分配的性能的图。
图15是实施例7涉及的实时处理系统的结构方框图。
具体实施例方式
以下,参照

本实施方式。 (实施例1)
图1是示出本发明的实施例1的多线程处理器结构的方框图。 多线程处理器是一种处理器,同时独立地执行N个(N是2以上 的整数)的指令流(N个线程),包括指令存储器101;指令解码器 102;指令调度器103; N个指令缓冲器(第一指令缓冲器104,第二 指令缓冲器105,……,第N指令缓冲器106); N个寄存器文件(第 一寄存器文件107,第二寄存器文件108,……,第N寄存器文件 109);优先级决定部110;发行指令决定部lll;运算器群组112; 以及回写总线113。
指令存储器101是一种存储器,保存在多线程处理器执行的指 令,并保存独立执行的N条指令流(线程)。
指令解码器102'是一种处理部,从指令存储器101读出属于各 个指令流的指令,并进行解码。对于指令解码器102的工作在后面 进行详细说明。
指令调度器103是一种处理部,从指令解码器102读出指令, 并进行指令调度。对于指令调度器103的工作在后面进行详细说明
第一指令缓冲器104是一种存储部,从指令调度器103接受所 调度的、属于第一个指令流(以下,第i个指令流称为第i指令流)的 指令,并保存。
第二指令缓冲器105是一种存储部,从指令调度器103接受所 调度的、属于第二指令流的指令,并保存。
第N指令缓冲器106是一种存储部,从指令调度器103接受所 调度的、属于第N指令流的指令,并保存。
第一寄存器文件107是一种寄存器群组,保存数据,通过执行 保存在第一指令缓冲器104的第一指令流,从而该数据成为读出以 及写入的对象。
第二寄存器文件108是一种寄存器群组,保存数据,通过执行 保存在第二指令缓冲器105的第二指令流,从而该数据成为读出以 及写入的对象。
第N寄存器文件109是一种寄存器群组,保存数据,通过执行 保存在第N指令缓冲器106的第N指令流,从而该数据成为读出以 及写入的对象。
优先级决定部110是一种处理部,决定N条指令流的优先级。 对于优先级决定部UO执行的工作以后说明。
发行指令决定部111是实现虚拟处理器的处理部。即,发行指 令决定部lll,从优先级决定部110接受优先级,并且,从第一指令 缓冲器104 第N指令缓冲器106的各个指令缓冲器接受指令缓冲 信息,该指令缓冲信息表示是否可以执行指令。并且,发行指令决 定部111,根据接受到的优先级以及指令缓冲信息,选择指令缓冲器 和寄存器群组,该指令缓冲器保存应该发行的指令流的指令,该寄
存器文件是对该指令流所需要的。
运算器群组112是一种处理部,包括加法器、乘法器等多个运 算器。回写总线113是一种总线,用于将来自运算器群组112的输 出结果回写到第一寄存器文件107 第N寄存器文件109。
其次,对于指令存储器101、指令解码器102、指令调度器103、 第一指令缓冲器104 第N指令缓冲器106的工作进行详细说明。
图2是用于说明指令存储器101、指令解码器102、指令调度器 103、第一指令缓冲器 第N指令缓冲器的工作的图。
在指令存储器101存储从第一指令流201到第N指令流203的 N条指令流。
指令解码器102从存储在指令存储器101的第一指令流201 第 N指令流203中一一选择指令流,并对指令进行解码。而且,指令 解码器102也可以监视在第一指令缓冲器104 第N指令缓冲器106 的指令的填充状况,从填充数少的指令流开始依次进行选择,并对 指令进行解码。
指令调度器103从指令解码器102接受解码后的指令,对该指 令进行分组,从而将可以同时发行的多个指令组成一组。即,指令 调度器103按照从指令存储器101读出的每个指令流,对该指令流 中的指令进行分组,从而将可以在同一周期内发行的指令组成一组。 指令调度器103,将组成后的指令存储到第一指令缓冲器104 第N 指令缓冲器106中与该指令所属的指令流相对应的任意指令缓冲器。
在第一指令缓冲器104 第N指令缓冲器106的各个指令缓冲 器保存处于由指令解码器102解码的、且由指令调度器103组成的 状态的指令。在此,对于表示指令组的方法,可以向各个指令附加 用于识别组的标识符,也可以向位于组和组之间的边界的指令附加 标识符,以表示边界。
图3A及图3B是用于说明由指令调度器103对单一指令流进行 指令调度处理的图。
例如,如图3A所示,说明对在某个指令流301包含的、任意的
连续八个指令进行的调度。
指令调度器103,通过根据存在于指令之间的数据依赖关系等将 可以同时执行的指令组成一组,从而对指令进行调度。
此结果是,例如,如图3B所示,指令流301中的开头两个指令 被组成第一组302。下面的三个指令被组成第二组303。下面的一个 指令被组成第三组304。下面的两个指令被组成第四组305。
在第一组302包含的两个指令是可以在第一周期内发行的。在 第二组303包含的三个指令是可以在第二周期内发行的。在第三组 304包含的一个指令是可以在第三周期内发行的。在第四组305包含 的两个指令是可以在第四周期内发行的。而且,各个组表示可以在 同一周期内发行的指令组。因此,不需要在按第一组302、第二组 303、第三组304、第四组305的顺序的连续周期内发行指令,而可 以在间隔的周期内发行指令,就可以要发行的指令组的顺序与所述 顺序不同。
而且,对于具有多个运算器的多线程处理器中将可以同时发行 的指令组成一组的方法,可以存在多种方法。例如存在如下方法等, 即,在维持指令的发行顺序的状态下,只根据可以同时发行的指令 数以及运算资源数,组成可以同时发行的指令组。并且,也可以是, 在编译器等预先进行该方法。在此情况下,指令调度器103,根据在 指令流中的指令包含的规定的标识符或指令数等来识别每一组之间 的边界,从而进行分组。
本发明的特点是,为了实现软件开发员预测的性能,不进行组 合多个指令流的指令的最佳化。这是因为,为了防止在某个指令流 的指令在执行时会受到其它指令流的指令的影响。此结果是,软件 开发员通过计数每个指令流的组的数量,从而可以容易地算出对各 个指令流需要的性能,即容易地算出应该分配给该指令流的虚拟处 理器的执行时间。
图4是用于说明使用第一指令缓冲器104 第N指令缓冲器 106、第一寄存器文件107 第N寄存器文件109、运算器群组112 以及回写总线113的细粒度多线程处理的图。
如上所述,发行指令决定部111,根据从优先级决定部110接受
到的优先级信息以及从各个指令缓冲器接受到的指令缓冲信息,选 择保存应该发行的指令流的指令的指令缓冲器以及对该指令流需要 的寄存器文件,从而实现虚拟处理器。
在此,多线程处理器使用运算器群组112执行流水线处理。假 设,例如流水线的段数有六段,包括第一运算段406、第二运算段 407、第三运算段408、第四运算段409、第五运算段410以及回写 段411。
在第一运算段406 第五运算段410的各个段执行在N条指令 流中的任意指令流包含的指令。
并且,在回写段411执行如下处理,即,将在第一运算段406 第五运算段410进行的运算的结果,通过回写总线113回写到第一 寄存器文件107 第N寄存器文件109中的任意寄存器文件。
如上所述,发行指令决定部111对指令流进行切换,并且向被 流水线化的运算段发行该指令流,从而可以实现多个虚拟处理器。 例如,在第一运算段406被分配执行第二指令流的第二虚拟处理器。
通过使用这些多线程流水线,可以大幅度地减少因数据依赖性 而引起的对指令发行的限制。
其次,说明优先级决定方法。图5是用于说明优先级决定部110 以及发行指令决定部111的工作的图。
优先级决定部IIO包括最优先对象优先级队列503,该最优先对 象优先级队列503登录虚拟处理器的号码(线程、指令流的号码),该 虚拟处理器最优先地被发行指令。最优先对象优先级指针504是一 种指针,指出在最优先对象优先级队列503中最优先的项目。
优先级决定部IIO,根据最优先对象优先级队列503以及最优先 对象优先级指针504所指出的项目,求出并输出优先级信息505,该 优先级信息505表示在某一个工作周期的虚拟处理器的优先级。
以下,参照具体例子说明优先级信息505的求出方法。优先级 决定部IIO,根据登录在最优先对象优先级队列503的虚拟处理器号 码决定每个周期的优先级。假设,例如在最优先对象优先级队列503 以"1 .2 *3……N ,End"的顺序登录虚拟处理器号码。在此,"End"
是一种标识符,表示最优先对象优先级队列503的最后项目。
在某个周期内,在最优先对象优先级指针504指出最优先对象 优先级队列503的第二项目的情况下,在该周期内优先级信息505 成为"2 3……N 1"。即,在最优先对象优先级队列503中,以 从最优先对象优先级指针504指出的项目到最后项目的前一个项目 为止的顺序决定虚拟处理器号码的优先级,从而求出优先级信息505 的前半部分"2 ,3……N"。再者,在最优先对象优先级队列503 中,以从开头项目到最优先对象优先级指针504指出的项目的前一 个项目为止的顺序决定虚拟处理器号码的优先级,从而求出优先级 信息505的后半部分"1"。通过合并优先级信息505的前半部分部 和后半部分,从而求出优先级信息505 "2*3……N' 1"。艮卩,在 该周期内,以第二虚拟处理器、第三虚拟处理器、……、第N虚拟 处理器、第一虚拟处理器的优先顺序发行指令。
在下一个周期内,最优先对象优先级指针504指出下一个项目, 即指出最优先对象优先级队列503的第三项目。而且,对于最优先 对象优先级指针504的转移,不管是否向最优先对象的虚拟处理器发 行了指令都按周期来进行。因此,该周期的优先级信息505成为 "3……N 1 2"。
以下,反复进行相同工作,在最优先对象优先级指针504指出 存储标识符"End"的最后项目时,最优先对象优先级指针504转移 到第一项目。虽然在本实施例中假设,在最优先对象优先级队列503 的各个项目分别登录N个虚拟处理器的每一个虚拟处理器号码,但 是也可以登录多个相同虚拟处理器号码。
发行指令决定部111接收从第一指令缓冲器104 第N指令缓 冲器106输出的指令缓冲信息506。指令缓冲信息506是一种信息, 表示在各个指令缓冲器保存的被组成的指令中是否存在该周期内可 以发行的指令。例如存在如下原因,即,存在由于各个指令缓冲器 是空白因此不能发行指令等原因,或存在即使各个指令缓冲器不是 空白也由于与以前发行过的指令之间存在数据依赖性、且未结束该 指令的运算因此不能发行指令等原因,则在指令缓冲信息506包含
信号,该信号表示在对应的指令缓冲器不存在可以发行的、被组成 的指令。
发行指令决定部111输出发行指令选择信号507,该发行指令选 择信号507用于选择在某一个工作周期内要发行的虚拟处理器。
艮P,发行指令决定部111按照优先级信息505检验指令缓冲信 息506,并确认是否存在可以向最优先发行对象的虚拟处理器发行 的、被组成的指令。在存在可以发行的、被组成的指令的情况下, 发行指令决定部111作为用于选择最优先发行对象的虚拟处理器的 信号输出发行指令选择信号507。
在不存在可以发行的、被组成的指令的情况下,发行指令决定 部111作为表示不存在应该发行的指令的信号输出发行指令选择信 号507。在此,在本实施例中,在不具有应该向最优先发行对象的虚 拟处理器发行的指令的情况下,与是否具有应该向其它虚拟处理器 发行的指令无关,发行指令决定部111不发行指令。然而,在具有 可以向其它虚拟处理器发行的指令的情况下,发行指令决定部111 可以发行指令。但是,在该情况下,最优先对象优先级指针504的 转移规则也不变。
图6是示出在本实施例涉及的多线程处理器中各个虚拟处理器 被分配的性能的图。
如图6所示,分配到第一虚拟处理器的性能601、分配到第二虚 拟处理器的性能602、分配到第三虚拟处理器的性能603、……、分 配到第N虚拟处理器的性能604的各个性能是全工作周期的N分之
而且,在周期单位虚拟处理器工作605中表示以周期为单位被 分配的虚拟处理器的号码,以从第一虚拟处理器到第N虚拟处理器 的顺序且以周期为单位决定最高优先级。但是,在图6中表示,在 向以虚线所示的第二虚拟处理器、第五虚拟处理器以及第一虚拟处 理器发行指令时,因如上所述的不存在应该发行的指令等理由而未 发行指令。
如上所述,根据本实施例,可以向第一虚拟处理器 第N虚拟
处理器都分配均等的性能601 604。而且,虽然在周期单位虚拟处 理器工作605表示的各个周期中以虚线所示的周期内未发行指令, 但是视为在未发行指令的周期内也向成为对象的处理器分配了性 能。
并且,指令调度器103按每个指令流对指令进行分组。因此, 可以按每个指令流(按每个线程)计数可以同时执行的指令组的数量。 据此,可以准确地估算每个线程的执行周期数,即可以准确地估算 对线程需要的处理时间。
据此,对于需要实时性的线程,通过按照对各个线程需要的处 理时间的比率使登录在最优先对象优先级队列503的虚拟处理器号 码的数量变化,从而可以分配线程以使在一定的期间内结束一定的 处理。
(实施例2)
其次,说明本发明的实施例2涉及的多线程处理器。
实施例2涉及的多线程处理器具有与图1所示的实施例1涉及 的多线程处理器相同的结构,但是优先级决定部110以及发行指令 决定部111不同。以下,以优先级决定部以及发行指令决定部为中 心说明实施例2涉及的多线程处理器。
图7是用于说明实施例2涉及的优先级决定部701以及发行指 令决定部702的结构以及工作的图。
优先级决定部701是取代图1所示的多线程处理器中的优先级 决定部110而设置的,并且,优先级决定部701是一种处理部,按 每个工作周期决定对N条指令流的优先级,并输出表示每个虚拟处 理器的优先级的优先级信息707。
发行指令决定部702是取代图1所示的多线程处理器中的发行 指令决定部111而设置的、用于实现虚拟处理器的处理部。即,发 行指令决定部702,从优先级决定部701接受优先级信息707,并且, 从第一指令缓冲器104 第N指令缓冲器106的各个指令缓冲器接 受指令缓冲信息506,该指令缓冲信息表示是否可以执行指令。并且, 发行指令决定部702,根据接受到的优先级信息707以及指令缓冲信
息506,选择指令缓冲器和寄存器文件,该指令缓冲器保存应该发行 的指令流的指令,该寄存器文件是对该指令流所需要的。
优先级决定部701包括最优先对象优先级队列703以及非最优 先对象优先级队列705,该最优先对象优先级队列703登录最优先地 被发行指令的虚拟处理器的号码(线程的号码、指令流的号码),该非 最优先对象优先级队列705登录非最优先地被发行指令的虚拟处理 器的号码。
最优先对象优先级指针704是一种指针,指出在最优先对象优 先级队列703中最优先的项目。非最优先对象优先级指针706是一 种指针,指出在非最优先对象优先级队列705中的项目,该项目中 存储成为指令发行对象的虚拟处理器的号码。
以下,参照具体例子说明优先级信息707的求出方法。优先级 决定部701,根据登录在最优先对象优先级队列703的虚拟处理器号 码以及登录在非最优先对象优先级队列705的虚拟处理器号码,决 定每个周期的优先级。假设,例如在最优先对象优先级队列703以 "1 2 3 4 5 End"的顺序登录虚拟处理器号码。并且假设,在 非最优先对象优先级队列705以"6 7 End"的顺序登录虚拟处理 器号码。在此,"End"是一种标识符,表示最优先对象优先级队列 703以及非最优先对象优先级队列705的最后项目。
假设,在某个周期内,最优先对象优先级指针704指出最优先 对象优先级队列703的第二项目、非最优先对象优先级指针706指 出非最优先对象优先级队列705的第二项目。此时,在该周期内优 先级信息707成为"2 3 4 5 1 7 6"。即,优先级决定部701 , 根据最优先对象优先级队列703以及最优先对象优先级指针704求 出优先级信息707的前半部分"2 3 4 5 1"。并且,优先级决 定部701,根据非最优先对象优先级队列705以及非最优先对象优先 级指针706求出优先级信息707的后半部分"7 6"。对于优先级 信息707的前半部分以及后半部分的求出方法,与参照图5说明的 由优先级决定部101的优先级信息505的求出方法相同。因此,不 反复进行详细说明。
在下一个周期内,最优先对象优先级指针704指出下一个项目, 即指出最优先对象优先级队列703的第三项目,并且,非最优先对 象优先级指针706指出下一个项目,即指出非最优先对象优先级队 列705的第一项目。对于最优先对象优先级指针704的转移,不管是 否向最优先对象的虚拟处理器发行了指令都按周期来进行。另一方 面,对于非最优先对象优先级指针706的转移,可以不管是否向非最 优先对象的虚拟处理器发行了指令都按周期来进行,也可以只在发 行了指令的情况下进行。该周期的优先级信息707成为 "3 4 5 1 2 6 7"。以下,反复进行相同工作,在最优先对 象优先级指针704指出存储标识符"End"的最后项目时,最优先对 象优先级指针704转移到第一项目,在非最优先对象优先级指针706 指出存储标识符"End"的最后项目时,非最优先对象优先级指针 706转移到第一项目。虽然在本实施例中假设,在最优先对象优先级 队列703的各个项目分别登录到第五虚拟处理器为止的五个虚拟处 理器的每一个虚拟处理器号码,但是也可以登录多个相同虚拟处理 器号码。并且,虽然在非最优先对象优先级队列705的各个项目分 别登录在最优先对象优先级队列703不登录的、第六虚拟处理器以 及第七虚拟处理器的每一个虚拟处理器号码,但是也可以登录多个 相同虚拟处理器号码。
发行指令决定部702输出发行指令选择信号507,该发行指令选 择信号507用于选择在某一个工作周期内要发行的虚拟处理器。
即,发行指令决定部702按照优先级信息707的优先级检验指 令缓冲信息506,并确认是否存在可以向最优先发行对象的虚拟处理 器发行的、被组成的指令。在存在可以发行的、被组成的指令的情 况下,发行指令决定部702作为用于选择最优先发行对象的虚拟处 理器的信号输出发行指令选择信号507。
在不存在可以发行的、被组成的指令的情况下,发行指令决定 部702确认是否存在可以向优先级其次高的发行对象的虚拟处理器 发行的、被组成的指令,并且,在存在可以发行的、被组成的指令 的情况下,作为用于选择该虚拟处理器的信号输出发行指令选择信号507。发行指令决定部702,反复进行如上所述的工作,在最后完 全不存在可以发行的指令组的情况下,作为表示不存在应该发行的 指令的信号输出发行指令选择信号507。
图8是用于说明实施例2涉及的多线程处理器中向各个虚拟处 理器分配的性能的图。
如图8所示,向第一虚拟处理器 第五虚拟处理器都分配均等 的、所保证的性能801 805,向第六虚拟处理器以及第七虚拟处理 器分别分配不保证的性能806以及807。
在周期单位虚拟处理器工作808中表示以周期为单位被分配的 虚拟处理器的号码,以从第一虚拟处理器到第五虚拟处理器的顺序 且以周期为单位决定最高优先级,该第一虚拟处理器到第五虚拟处 理器与登录在最优先对象优先级队列703的虚拟处理器号码相对应。 但是,在向以虚线所示的第二虚拟处理器、第五虚拟处理器以及第 三虚拟处理器发行指令时,因如上所述的不存在应该发行的指令等 理由而不可发行指令。据此,在该周期内,执行可发行的指令的虚 拟处理器中优先级最高的虚拟处理器被分配。例如,第三虚拟处理 器、第七虚拟处理器以及第五虚拟处理器被分配,而取代以虚线所 示的第二虚拟处理器、第五虚拟处理器以及第三虚拟处理器。而且, 即使在其它虚拟处理器被分配的情况下,也在下一个周期内在该周 期内优先级最高的虚拟处理器被选择。因此,可以保证在软件开发 员预测的、考虑到延迟时间(latency)的最坏周期内执行指令。 (实施方式3)
其次,说明本发明的实施例3涉及的多线程处理器。
实施例3涉及的多线程处理器具有与实施例2涉及的多线程处
理器相同的结构,但是优先级决定部701的工作不同。因此,以与
实施例2不同的部分为中心进行说明。
参照图7说明优先级决定部701及发行指令决定部702的工作。 以下,参照具体例子说明由优先级决定部701的优先级信息707
的求出方法。
优先级决定部701,根据登录在最优先对象优先级队列703的虚
拟处理器号码以及登录在非最优先对象优先级队列705的虚拟处理 器号码,决定每个周期的优先级。假设,登录在最优先对象优先级 队列703以及非最优先对象优先级队列705的虚拟处理器号码与实 施例2相同。
假设,在某个周期内,最优先对象优先级指针704指出最优先 对象优先级队列703的第二项目、非最优先对象优先级指针706指 出非最优先对象优先级队列705的第二项目。此时,在该周期内优 先级信息707成为"2'7'6"。艮卩,优先级决定部701,根据最优 先对象优先级队列703以及最优先对象优先级指针704求出优先级 信息707的前半部分"2"。并且,优先级决定部701,根据非最优 先对象优先级队列705以及非最优先对象优先级指针706求出优先 级信息707的后半部分"7 6"。优先级信息707的后半部分的求 出方法与实施例2相同,但是前半部分的求出方法与实施例2不同。 即,优先级信息707的前半部分只有最优先对象优先级指针704指 出的非最优先对象优先级队列705存储的虚拟处理器号码。
在下一个周期内,最优先对象优先级指针704指出下一个项目, 即指出最优先对象优先级队列703的第三项目,并且,非最优先对 象优先级指针706指出下一个项目,即指出非最优先对象优先级队 列705的第一项目。对于最优先对象优先级指针704的转移,不管是 否向最优先对象的虚拟处理器发行了指令都按周期来进行。另一方 面,对于非最优先对象优先级指针706的转移,不管是否向非最优先 对象的虚拟处理器发行了指令都按周期来进行,也可以只在发行了 指令的情况下进行。该周期的优先级信息707成为"3 6 7"。如 此设定优先级,即,以基于最优先对象优先级队列703的虚拟处理 器号码的优先级为最高,其次以基于非最优先对象优先级队列705 的虚拟处理器号^的优先级为高。以下,反复进行相同工作,在最 优先对象优先级指针704指出存储标识符"End"的最后项目时,最 优先对象优先级指针704转移到第一项目,在非最优先对象优先级 指针706指出存储标识符"End"的最后项目时,非最优先对象优先 级指针706转移到第一项目。虽然在本实施例中假设,在最优先对
象优先级队列703的各个项目分别登录到第五虚拟处理器为止的五 个虚拟处理器的每一个虚拟处理器号码,但是也可以登录多个相同 虚拟处理器号码。并且,虽然在非最优先对象优先级队列705的各 个项目分别登录在最优先对象优先级队列703不登录的、第六虚拟 处理器以及第七虚拟处理器的每一个虚拟处理器号码,但是也可以 登录多个相同虚拟处理器号码。
发行指令决定部702输出发行指令选择信号507,该发行指令选 择信号507用于选择在某一个工作周期内要发行的虚拟处理器。由 于发行指令决定部702的工作与实施例2相同,因此不反复进行详 细说明。
图9是用于说明实施例3涉及的多线程处理器中向各个虚拟处 理器分配的性能的图。
如图9所示,向第一虚拟处理器 第五虚拟处理器都分配均等 的、所保证的性能901 905,向第六虚拟处理器以及第七虚拟处理 器分别分配不保证的性能906以及卯7。
在周期单位虚拟处理器工作908中表示以周期为单位被分配的 虚拟处理器的号码。并且,以从第一虚拟处理器到第五虚拟处理器 的顺序且以周期为单位决定最高优先级,该第一虚拟处理器到第五 虚拟处理器与登录在最优先对象优先级队列703的虚拟处理器号码 相对应。但是,在向以虚线所示的第二虚拟处理器、第五虚拟处理 器以及第三虚拟处理器发行指令时,因如上所述的不存在应该发行 的指令等理由而不可发行指令。据此,在该周期内,虚拟处理器号 码被登录在非最优先对象优先级队列705的虚拟处理器中优先级最 高的虚拟处理器被分配。例如,非最优先对象的虚拟处理器即第六 虚拟处理器、第七虚拟处理器以及第六虚拟处理器被分配,而取代 以虚线所示的第二虚拟处理器、第五虚拟处理器以及第三虚拟处理 器。而且,即使在发行指令决定部702选择其它虚拟处理器的情况 下,也在下一个周期内在该周期内优先级最高的虚拟处理器被选择。 因此,可以保证在软件开发员预测的、考虑到延迟时间(latency)的最 坏周期内执行指令。
根据所述工作,可以向登录在最优先对象优先级队列703的虚 拟处理器充分地提供软件开发员预测的性能,并且可以向登录在非 最优先对象优先级队列705的、被分配不保证的性能的虚拟处理器 积极地分配性能。 (实施例4)
其次,说明本发明的实施例4涉及的多线程处理器。 实施例4涉及的多线程处理器如下构成,即,针对图1所示的 实施例1涉及的多线程处理器,使用实施例2或实施例3中说明的 优先级决定部701而取代优先级决定部110,使用发行指令决定部 1005而取代发行指令决定部111。并且,细粒度多线程处理与实施 例1 3不同。以下,以与所述实施例不同的部分为中心说明本实施 例。
图10是用于说明使用第一指令缓冲器104 第N指令缓冲器 106、第一寄存器文件107 第N寄存器文件109、运算器群组112 以及回写总线113的细粒度多线程处理的图。
优先级决定部701是一种处理部,决定N条指令流的优先级, 并输出优先级信息。优先级决定部701的结构以及工作与实施例2 或实施例3中的说明相同,因此可以使用任何结构以及工作。因此, 在此不反复进行详细说明。
发行指令决定部1005,根据从优先级决定部701接受到的优先 级信息指令缓冲信息,选择保存应该发行的指令流的指令的指令缓 冲器以及对该指令流需要的寄存器文件,从而实现虚拟处理器,所 述指令缓冲信息表示是否可以向第一指令缓冲器104 第N指令缓 冲器106发行指令。
此时,发行指令决定部1005按照优先级信息707的优先级检验 指令缓冲信息506,并确认是否存在可以向最优先发行对象的虚拟处 理器发行的、被组成的指令。在存在可以发行的、被组成的指令的 情况下,发行指令决定部1005作为用于选择最优先发行对象的虚拟 处理器的信号输出发行指令选择信号507。再者,发行指令决定部 1005,根据指令缓冲信息506从优先级高的虚拟处理器依次确认是
否存在可以发行的、被组成的指令,并且检验是否存在可以同时发 行的、被组成的指令。在存在可以同时发行的、被组成的指令的情
况下,发行指令决定部1005同时发行该被组成的指令。如下进行这 些是否同时发行的检验。即,检验假设为同时发行的多个线程的指 令总数是否要使用的运算资源的数量以下,并且,若满足该条件, 则判断为可以同时发行。
在不存在可以向最优先发行对象的虚拟处理器发行的、被组成 的指令的情况下,发行指令决定部1005确认是否存在可以向优先级 其次高的发行对象的虚拟处理器发行的、被组成的指令。在存在该 可以发行的、被组成的指令的情况下,发行指令决定部1005,作为 用于选择优先级其次高的虚拟处理器的信号输出发行指令选择信号 507。此时同样,发行指令决定部1005,根据指令缓冲信息506从优 先级高的虚拟处理器依次确认是否存在可以发行的、被组成的指令, 并且检验是否存在可以同时发行的、被组成的指令。在存在可以同 时发行的、被组成的指令的情况下,发行指令决定部1005同时发行 该被组成的指令。
发行指令决定部1005,反复进行如上所述的工作,在最后完全 不存在可以发行的指令组的情况下,作为表示不存在应该发行的指 令的信号输出发行指令选择信号507。
在此,多线程处理器使用运算器群组112执行流水线处理。假 设,例如流水线的段数有六段,流水线包括第一运算段1006、第 二运算段1007、第三运算段1008、第四运算段1009、第五运算段 1010以及回写段1011。
在第一运算段1006 第五运算段1010的各个段执行在N条指 令流中包含的指令。
并且,在回写段1011执行如下处理,即,将在第一运算段1006 第五运算段1010进行的运算的结果,通过回写总线113回写到第一 寄存器文件107 第N寄存器文件109中的任意寄存器文件。
如上所述,发行指令决定部1005对指令流进行切换,并且向被 流水线化的运算段发行该指令流,从而可以实现多个虚拟处理器。
例如,在第一运算段1006被分配执行第一指令流的第一虚拟处理器。 并且,在第二运算段1007被分配执行第五指令流的第五虚拟处理器 以及执行第七指令流的第七虚拟处理器。
通过使用这些多线程流水线,可以大幅度地减少因数据依赖性 而引起的对指令发行的限制。
而且,实施例4与实施例1 3的不同之处是,像第二运算段 1007、第五运算段1010那样,在同一段上存在多个虚拟处理器的指 令。这是发行指令决定部1005同时发行多个虚拟处理器的指令的结 果。这些技术, 一般被称为同时多线程技术(SMT: Simultaneous Multi Threading),本专利的特点是以被组成的指令为单位同时发行指令。
图ll是用于说明本实施例涉及的多线程处理器中向各个虚拟处 理器分配的性能的图。
如图11所示,向第一虚拟处理器 第五虚拟处理器都分配均等 的、所保证的性能1101 1105,向第六虚拟处理器以及第七虚拟处 理器分别分配不保证的性能1106以及1107。
在周期单位虚拟处理器工作H08中表示以周期为单位被分配的 虚拟处理器的号码,以从第一虚拟处理器到第五虚拟处理器的顺序 且以周期为单位决定最高优先级,该第一虚拟处理器到第五虚拟处 理器与登录在最优先对象优先级队列703的虚拟处理器号码相对应。 但是,向第三虚拟处理器以及第七虚拟处理器同时发行了指令。同 样,向第四虚拟处理器以及第五虚拟处理器也同时发行了指令。并 且,在向以虚线所示的第二虚拟处理器、第五虚拟处理器以及第三 虚拟处理器发行指令时,因如上所述的不存在应该发行的指令等理 由而不可发行指令。据此,在该周期内,执行可发行的指令的虚拟 处理器中优先级最高的虚拟处理器被分配。例如,第三虚拟处理器、 第六虚拟处理器以及第七虚拟处理器被分配,而取代以虚线所示的 第二虚拟处理器、第五虚拟处理器以及第三虚拟处理器。
而且,即使在其它虚拟处理器被分配的情况下,也在下一个周 期内在该周期内优先级最高的虚拟处理器被选择。因此,可以保证 在软件开发员预测的、考虑到延迟时间的最坏周期内执行指令。
根据所述工作,可以向登录在最优先对象优先级队列703的虚 拟处理器充分地提供软件开发员预测的性能,并且可以向登录在非 最优先对象优先级队列705的、被分配不保证的性能的虚拟处理器 积极地分配性能。
而且,在上述说明中,在各个运算段同时发行最多两个虚拟处 理器的指令,但不仅限于此,若可以使用运算资源,则可以在一个 运算段同时发行三个以上的虚拟处理器的指令。 (实施例5)
其次,说明本发明的实施例5涉及的多线程处理器。
实施例5涉及的多线程处理器具有与图10所示的实施例4涉及
的多线程处理器相同的结构。但是,发行指令决定部1005的工作不同。
实施例4涉及的发行指令决定部1005,在各个执行周期内不存 在可以向最优先发行对象的虚拟处理器发行的、被组成的指令的情 况下,若存在可以向其它虚拟处理器发行的、被组成的指令,则向 该虚拟处理器发行被组成的指令。
与此相对,本实施例涉及的发行指令决定部1005,在各个执行 周期内不存在可以向最优先发行对象的虚拟处理器发行的、被组成 的指令的情况下,即使存在可以向其它虚拟处理器发行的、被组成 的指令,也不进行所有指令的发行。即,发行指令决定部1005作为 表示不存在应该发行的指令的信号输出发行指令选择信号507。
通过进行这些工作,在不进行指令的发行的执行周期内,完全 停止第一指令缓冲器104 第N指令缓冲器106、第一寄存器文件 107 第N寄存器文件109、对应该执行周期的运算段的工作。据此, 可以减少由多线程处理器使用的电力。
图12是用于说明本实施例涉及的多线程处理器中向各个虚拟处 理器分配的性能的图。
如图12所示,向第一虚拟处理器 第五虚拟处理器都分配均等 的、所保证的性能1201 1205,向第六虚拟处理器以及第七fe拟处 理器分别分配不保证的性能1206以及1207。
在周期单位虚拟处理器工作1208中表示以周期为单位被分配的 虚拟处理器的号码,以从第一虚拟处理器到第五虚拟处理器的顺序 且以周期为单位决定最高优先级,该第一虚拟处理器到第五虚拟处 理器与登录在最优先对象优先级队列703的虚拟处理器号码相对应。 但是,向第三虚拟处理器以及第七虚拟处理器同时发行了指令。同 样,向第四虚拟处理器以及第五虚拟处理器,并且向第一虚拟处理 器以及第六虚拟处理器,也同时发行了指令。
并且,在向以虚线所示的第二虚拟处理器、第五虚拟处理器以 及第三虚拟处理器发行指令时,因如上所述的不存在应该发行的指 令等理由而不可发行指令。因此,不发行指令。
而且,即使在其它虚拟处理器被分配的情况下、或在虚拟处理 器未被分配的情况下,也在下一个周期内在该周期内优先级最高的 虚拟处理器被选择。因此,可以保证在软件开发员预测的、考虑到 延迟时间的最坏周期内执行指令。
根据所述工作,可以向登录在最优先对象优先级队列703的虚 拟处理器充分地提供软件开发员预测的性能,并且可以向登录在非 最优先对象优先级队列705的、被分配不保证的性能的虚拟处理器 积极地分配性能。 (实施例6)
其次,说明本发明的实施例6涉及的多线程处理器。
本实施例涉及的多线程处理器如下构成,即,针对图1所示的 实施例1涉及的多线程处理器,使用优先级决定部1301而取代优先 级决定部110,使用发行指令决定部1302而取代发行指令决定部 111。以下,以与所述实施例不同的部分为中心说明本实施例。
图13是用于说明优先级决定部1301以及发行指令决定部1302 的结构以及工作的图。
优先级决定部1301是一种处理部,决定N条指令流的优先级, 并输出表示每个虚拟处理器的优先级的优先级信息1312。
发行指令决定部1302是取代图1所示的多线程处理器中的发行 指令决定部111而设置的、用于实现虚拟处理器的处理部。BP,发 行指令决定部1302,从优先级决定部1301接受优先级信息1312, 并且,从第一指令缓冲器104 第N指令缓冲器106的各个指令缓 冲器接受指令缓冲信息506,该指令缓冲信息表示是否可以执行指 令。并且,发行指令决定部1302,根据接受到的优先级信息1312 以及指令缓冲信息506,选择指令缓冲器和寄存器文件,该指令缓冲 器保存应该发行的指令流的指令,该寄存器文件是对该指令流所需 要的。
优先级决定部1301包括最优先对象优先级队列1303,保证性 能决定部1305,保证性能测量部1306,非最优先对象优先级队列 1307,基本周期决定部1309,基本周期计数部1310以及复位信号生 成部1311。
最优先对象优先级队列1303是存储部,登录虚拟处理器的号码 (线程的号码、指令流的号码),该虚拟处理器最优先地被发行指令。 最优先对象优先级指针1304指出在最优先对象优先级队列1303中 的最优先的项目。
保证性能决定部1305是一种存储部,与最优先对象优先级队列 1303相对应,表示按每个虚拟处理器应该执行的性能。
保证性能测量部1306是一种存储部,与最优先对象优先级队列 1303相对应,表示按每个虚拟处理器己经实现的性能。
非最优先对象优先级队列1307是存储部,登录虚拟处理器的号 码,该虚拟处理器最优先地被发行指令。非最优先对象优先级指针 1308指出在非最优先对象优先级队列1307中的、存储成为指令发行 对象的虚拟处理器的号码的项目。
基本周期决定部1309是一种处理部,决定用于进行性能计数的 一定的周期。
基本周期计数部1310是一种处理部,计数用于进行性能计数的 一定的周期的执行周期数。
复位信号生成部1311是一种处理部,在基本周期计数部1310 计数的执行周期数达到由基本周期决定部1309设定的基本周期的情 况下,向保证性能测量部1306和基本周期计数部1310通知复位信
号。保证性能测量部1306和基本周期计数部1310接受复位信号后, 将各自保存的执行周期数复位到0。
以下详细说明各个处理部的工作。保证性能决定部1305是一种 寄存器,可以由软件设定,按每个虚拟处理器具有项目,在与该虚 拟处理器相对应的项目设定对每个虚拟处理器需要的工作周期数, 并且,该工作周期数是在某个系统状态下开始工作时与虚拟处理器 相对应而预先被设定的。
保证性能测量部1306,按每个虚拟处理器具有项目,在各个项 目以0为初始状态,若最优先的周期被分配到对应的虚拟处理器, 则开始加计数。在每次加计数时,对各个项目的值与存储在保证性 能决定部1305的、对应的工作周期数进行比较,在不一致时继续进 行相同工作。在一致时,停止下面的计数工作,并且输出信号,该 信号表示实现了与保存所一致的值的项目相对应的虚拟处理器的预 定性能。
该信号成为对所述对应的虚拟处理器的控制信号,用于以下控 制(1. 3.)。
1. 将该虚拟处理器从由最优先对象优先级队列1303决定的优先 级的决定对象中取消,不将该虚拟处理器作为指令发行对象的候补。 即,在优先级信息1312不包含该虚拟处理器的信息。
2. 将该虚拟处理器作为由最优先对象优先级队列1303以及非最 优先对象优先级队列1307决定的优先级中优先级最低的虚拟处理 器,从而输出优先级信息1312。
3. 控制信号,不被使用于优先级的控制,而作为优先级信息1312 的一部分被输出到发行指令决定部1302,发行指令决定部1302接受 该信号后视为所述对应的虚拟处理器不保存指令,从而输出发行指 令选择信号1314。
基本周期决定部1309是一种寄存器,可以由软件设定,在某个 系统状态下幵始工作时预先设定周期的值,在该周期内可以期待保 证由保证性能决定部1305、保证性能测量部1306设定的应该保证的 性能。
基本周期计数部1310,以O为初始状态,按每个工作周期开始 加计数。并且,在每次加计数时,由复位信号生成部1311对保存在 基本周期计数部1310的值与存储在基本周期决定部1309的值进行 比较,在两个值不一致时继续进行相同工作。在两个值一致时,复 位信号生成部1311停止下面的计数工作,并且输出信号,该信号表 示实现了由基本周期决定部1309所定的基本周期。
表示基本周期的结束的信号具有的作用是,将保证性能测量部 1306以及基本周期计数部1310初始化,EP,从初始状态再开始应该 保证的性能的计数和基本周期的计数。
虽然除了决定上述控制以外,还决定优先级信息1312,但优先 级信息1312的决定方法与实施例2 5中的任意实施例中所述的方 法相同。
并且,在发行指令决定部1302中的发行指令选择信号1314的 决定处理也与所述实施例中的任意实施例相同。因此,在此不反复 这些详细说明。
图14是用于说明本实施例涉及的多线程处理器中向各个虚拟处 理器分配的性能的图。
如图14所示,向第一虚拟处理器 第五虚拟处理器分配与由保 证性能决定部1305设定的第一保证性能 第五保证性能相同的、性 能1401 1405,向第六虚拟处理器以及第七虚拟处理器分别分配不 保证的性能1406以及1407,。
本实施例的特点是,如上所述、虚拟处理器1401 1405被分配 由保证性能决定部1305所定的性能,该性能是对各个虚拟处理器应 该保证的、不均等的性能。据此,可以向登录在最优先对象优先级 队列1303的虚拟处理器充分地提供软件开发员预测的性能,并且可 以向登录在非最优先对象优先级队列1307的、被分配不保证的性能 的虚拟处理器积极地分配性能。 (实施例7)
其次,说明本发明的实施例7涉及的实时处理系统。
图15是示出实时处理系统的简单结构的方框图。本实施例涉及
的实时处理系统是例如进行图像以及声音的再生的系统,也是使用
所述实施例1 6中的任意实施例所述的多线程处理器的系统。
多线程处理器1501包括虚拟处理器1502、 1503以及1504。虚 拟处理器1502以及1503是一种处理器,可以保证充分地提供软件 开发员预测的性能,并且,虚拟处理器1504是一种处理器,不成为 保证性能的对象而被分配不保证的性能。
可保证性能的虚拟处理器1502以及1503分别使影像处理软件 程序1505以及声音处理软件程序1506(g卩,时间上的限制严格的软 件处理)执行,该影像处理软件程序1505进行运动图像的解码,该 声音处理软件程序1506进行声音的解码。并且,被分配不保证的性 能的虚拟处理器1504使其它的普通处理软件程序1507(即,时间上 的限制不严格的软件处理)执行。
例如,作为普通处理软件程序1507执行的处理,若考虑到对数 字电视机或DVD刻录器使用多线程处理器1501的情况,则可以考 虑到OSD(On Screen Display :屏幕显示)的显示或频道切换处理等。
通过采用如上结构,向需要保证性能的软件程序准确地分配需 要的性能,向不需要保证性能的软件程序尽量分配此外的性能,从 而可以提高多线程处理器整体的吞吐率(throughput),也可以实现高 速度且具有灵活性的处理。
此次,在所公开的所有实施例中举例进行了说明,但不仅限于 此例子。对于本发明的范围,不是在所述说明中所示,而是在权利 要求书中所示,因此本发明的范围与权利要求书均等,以及本发明 的范围包含权利要求书中的所有变更。
由于本发明涉及的多线程处理器具有实现灵活且高性能的功 能,因此可以适用于DVD刻录机或数字TV等、进行影像或声音的 媒体处理的多线程处理器等。
权利要求
1、一种多线程处理器,同时执行多个指令流,其特征在于,包括多个运算器,执行多个指令;分组单元,按每个所述指令流,对在该指令流中包含的指令进行分组,从而分为由可以向所述多个运算器同时发行的指令组成的组;指令缓冲器,以由所述分组单元分成的组为单位,并按每个所述指令流保存在该指令流中包含的指令;以及指令发行单元,按多线程处理器的每个执行周期,以组为单位从所述指令缓冲器读出指令,并向所述多个运算器发行读出后的所述指令。
2、 如权利要求1所述的多线程处理器,其特征在于,还包括 第一优先级队列,存储多个指令流标识符;以及 优先级决定单元,按所述多线程处理器的每个执行周期,对所述第一优先级队列中的至少一个以上的所述指令流标识符进行切换 的同时还进行顺序排列,之后选择至少一个以上的所述指令流标识 符,将所选择的所述至少一个以上的所述指令流标识符决定为优先 级信息,所述指令发行单元,按多线程处理器的每个执行周期,根据由 所述优先级决定单元决定的所述优先级信息决定指令流,从所述指 令缓冲器读出该指令流中的一组指令,向所述多个运算器发行读出 后的所述指令。
3、 如权利要求2所述的多线程处理器,其特征在于, 所述指令发行单元,按多线程处理器的每个执行周期,根据由所述优先级决定单元决定的所述优先级信息,从所述指令缓冲器读 出可以向所述多个运算器发行的指令存在于所述指令缓冲器的指令 流中、优先级最高的指令流中的一组指令,向所述多个运算器发行 读出后的所述指令。
4、 如权利要求2所述的多线程理器,其特征在于,还包括 第二优先级队列,存储多个指令流标识符,所述优先级决定单元,使在所述第一优先级队列中包含的指令 流标识符的优先级高于所述第二优先级队列中包含的指令流标识符 的优先级,对所述第一优先级队列以及所述第二优先级队列中的至 少一个以上的所述指令流标识符,按多线程处理器的每个执行周期 进行切换的同时还进行顺序排列,之后选择至少一个以上的所述指 令流标识符,将所选择的所述至少一个以上的所述指令流标识符决 定为优先级信息。
5、 如权利要求4所述的多线程处理器,其特征在于, 所述优先级决定单元,使在所述第一优先级队列中包含的指令流标识符的优先级高于所述第二优先级队列中包含的指令流标识符 的优先级,对在所述第一优先级队列中包含的所有指令流标识符以 及在所述第二优先级队列中包含的所有指令流标识符,按多线程处 理器的每个执行周期进行切换的同时还进行顺序排列,之后选择指 令流标识符,将所选择的指令流标识符决定为优先级信息,所述指令发行单元,按多线程处理器的每个执行周期,根据由 所述优先级决定单元决定的所述优先级信息,从所述指令缓冲器读 出可以向所述多个运算器发行的指令存在于所述指令缓冲器的指令 流中、优先级最高的指令流中的一组指令,向所述多个运算器发行 读出后的所述指令。
6、 如权利要求4所述的多线程处理器,其特征在于, 所述优先级决定单元,使在所述第一优先级队列中包含的指令流标识符的优先级高于所述第二优先级队列中包含的指令流标识符 的优先级,对在所述第一优先级队列中包含的一个指令流标识符以 及在所述第二优先级队列中包含的所有指令流标识符,按多线程处 理器的每个执行周期进行切换的同时还进行顺序排列,并从所述第 一优先级队列以及所述第二优先级队列中选择指令流标识符,将所 选择的指令流标识符决定为优先级信息,所述指令发行单元,按多线程处理器的每个执行周期,根据由 所述优先级决定单元决定的所述优先级信息,从所述指令缓冲器读出可以向所述多个运算器发行的指令存在于所述指令缓冲器的指令 流中、优先级最高的指令流中的一组指令,向所述多个运算器发行 读出后的所述指令。
7、 如权利要求4所述的多线程处理器,其特征在于, 所述指令发行单元,按多线程处理器的每个执行周期,根据由所述优先级决定单元决定的所述优先级信息,在所述指令缓冲器存 在可以向所述多个运算器发行的、优先级最高的指令流中的一组指 令的情况下,发行该指令,并且,发行剩余的指令流中的、与所发 行的指令同时可以向所述多个运算器发行的、且优先级最高的指令 流中的一组指令。
8、 如权利要求7所述的多线程处理器,其特征在于, 所述指令发行单元,进一步,按多线程处理器的每个执行周期,根据由所述优先级决定单元决定的所述优先级信息,在所述指令缓 冲器不存在可以向所述多个运算器发行的、优先级最高的指令流中 的一组指令的情况下,从所述指令缓冲器读出剩余的指令流中、可 以向所述多个运算器发行的指令存在于所述指令缓冲器的指令流中 优先级最高的指令流中的一组指令,向所述多个运算器发行读出后 的所述指令。
9、 如权利要求7所述的多线程处理器,其特征在于, 所述指令发行单元,进一步,按多线程处理器的每个执行周期,根据由所述优先级决定单元决定的所述优先级信息,在所述指令缓 冲器不存在可以向所述多个运算器发行的、优先级最高的指令流中 的一组指令的情况下,在该执行周期内停止发行指令。
10、 如权利要求2所述的多线程处理器,其特征在于,包括 保证性能决定单元,示出针对所述多个指令流应该保证的性能;以及性能测量单元,测量针对所述多个指令流执行了的性能, 所述优先级决定单元或所述指令发行单元,在所述性能测量单元测量出的性能达到由所述保证性能决定单元所示的应该保证的性能时,变更向所述多个运算器的指令发行方法。
11、 如权利要求10所述的多线程处理器,其特征在于,所述优先级决定单元,在所述性能测量单元测量出的性能达到 由所述保证性能决定单元所示的应该保证的性能时,变更所述优先 级信息。
12、 如权利要求ll所述的多线程处理器,其特征在于, 所述优先级决定单元,在所述性能测量单元测量出0的性能达到由所述保证性能决定单元所示的应该保证的性能时,不考虑达到 性能的指令流的指令流标识符,而决定下一个执行周期以后的所述 优先级信息。
13、 如权利要求ll所述的多线程处理器,其特征在于, 所述优先级决定单元,在所述性能测量单元测量出的性能达到由所述保证性能决定单元所示的应该保证的性能时,使达到性能的 指令流的优先级为最低,决定下一个执行周期以后的所述优先级信 息。
14、 如权利要求10所述的多线程处理器,其特征在于, 所述指令发行单元,在所述性能测量单元测量出的性能达到由所述保证性能决定单元所示的应该保证的性能时,视为不存在达到 性能的指令流的指令,向所述多个运算器发行其它指令流的指令。
15、 如权利要求10所述的多线程处理器,其特征在于, 所述性能测量单元,作为针对指令流执行了的性能,计数由所述指令发行单元所发行的该指令流的指令的次数。
16、 如权利要求IO所述的多线程处理器,其特征在于,还包括 基本周期决定单元,决定预定的基本周期; 基本周期计数单元,计数执行周期数;以及复位单元,在由所述基本周期计数单元计数的执行周期数达到 由所述基本周期决定单元决定的基本周期时,将由所述基本周期计 数单元计数的执行周期数以及由所述性能测量单元测量的性能复位 到初始状态。
17、 一种实时处理系统,包括同时执行多个指令流的多线程处 理器,其特征在于,包括多个运算器,执行多个指令;分组单元,按每个所述指令流,对在该指令流中包含的指令进 行分组,从而分为由可以向所述多个运算器同时发行的指令组成的 组;指令缓冲器,以由所述分组单元分成的组为单位,并按每个所 述指令流保存在该指令流中包含的指令;指令发行单元,按多线程处理器的每个执行周期,以组为单位 从所述指令缓冲器读出指令,并向所述多个运算器发行读出后的所 述指令;第一优先级队列,存储需要实时处理的指令流的多个指令流标 识符;以及第二优先级队列,存储不需要实时处理的指令流的多个指令流 标识符,所述优先级决定单元,使在所述第一优先级队列中包含的指令 流标识符的优先级高于所述第二优先级队列中包含的指令流标识符 的优先级,对所述第一优先级队列以及所述第二优先级队列中的至 少一个以上的指令流标识符,按多线程处理器的每个执行周期进行 切换的同时还进行顺序排列,并从所述第一优先级队列以及所述第 二优先级队列中选择至少一个以上的所述指令流标识符,将所选择 的所述至少一个以上的所述指令流标识符决定为优先级信息,所述指令发行单元,按多线程处理器的每个执行周期,根据由 所述优先级决定单元决定的所述优先级信息决定指令流,从所述指 令缓沖器读出该指令流中的一组指令,向所述多个运算器发行读出 后的所述指令。
18、 如权利要求17所述的实时处理系统,其特征在于, 所述需要实时处理的指令流,是用于实现影像信号或声音信号的解码处理或编码处理的指令流。
19、 一种指令发行方法,由同时执行多个指令流的多线程处理 器进行,其特征在于,包括分组步骤,按每个所述指令流,对在该指令流中包含的指令进行分组,从而分为由可以向执行多个指令的多个运算器同时发行的指令组成的组;存储步骤,以由所述分组单元分成的组为单位,并按每个所述 指令流,使该指令流中包含的指令存储在指令缓冲器中;以及指令发行步骤,按多线程处理器的每个执行周期,以组为单位 从所述指令缓冲器读出指令,并向所述多个运算器发行读出后的所 述指令。
全文摘要
一种多线程处理器,可以准确地估算对线程需要的处理时间,并且同时执行多个指令流,该多线程处理器包括运算器群组,执行多个指令;指令调度器,按每个所述指令流,对在该指令流中包含的指令进行分组,从而分为由可以向所述运算器群组同时发行的指令组成的组;指令缓冲器,以由所述指令调度器分成的组为单位,并按每个所述指令流保存在该指令流中包含的指令;以及发行指令决定部,按多线程处理器的每个执行周期,以组为单位从所述指令缓冲器读出指令,并向所述运算器群组发行读出后的所述指令。
文档编号G06F9/38GK101178646SQ20071018509
公开日2008年5月14日 申请日期2007年11月8日 优先权日2006年11月8日
发明者中岛雅逸, 尾崎伸治, 山本崇夫, 森下广之 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1