CN102428441B - 处理器 - Google Patents
处理器 Download PDFInfo
- Publication number
- CN102428441B CN102428441B CN201080021569.6A CN201080021569A CN102428441B CN 102428441 B CN102428441 B CN 102428441B CN 201080021569 A CN201080021569 A CN 201080021569A CN 102428441 B CN102428441 B CN 102428441B
- Authority
- CN
- China
- Prior art keywords
- order
- command stream
- command
- relative importance
- priority level
- 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
- 239000000872 buffer Substances 0.000 claims abstract description 99
- 238000000034 method Methods 0.000 claims description 103
- 230000008569 process Effects 0.000 claims description 89
- 238000000605 extraction Methods 0.000 claims description 46
- 238000012544 monitoring process Methods 0.000 claims description 28
- 238000009790 rate-determining step (RDS) Methods 0.000 claims 1
- 230000004043 responsiveness Effects 0.000 abstract description 11
- 230000009471 action Effects 0.000 description 32
- 230000015654 memory Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 3
- 238000004148 unit process Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 244000045947 parasite Species 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明的目的在于提供一种处理器,能够一并实现针对一个命令流的性能保证和针对其它命令流的高响应性。一种具有L个(L为2以上的整数)运算器的处理器,具有:命令缓冲器,被分别输入M个(M为2以上的整数)命令流,包含M×Z个命令存储区域,以用来存储构成各命令流的Z个(Z为2以上的整数,且满足M×Z为L以上)命令;顺序信息保存单元,保存顺序信息,该顺序信息是对所述命令缓冲器内的所述M×Z个命令存储区域赋予了顺序的信息;提取单元,用于提取在所述命令缓冲器的所述M×Z个命令存储区域中存储的命令;以及控制单元,使所述提取单元按照基于所述顺序信息的顺序,从在所述M×Z个命令存储区域中存储的成为可执行状态的所有命令中提取L个命令,并将提取出的每个命令输入到不同运算器中。
Description
技术领域
本发明涉及如下技术,在并行执行多个命令流的处理器中,一并实现针对一个命令流的性能保证和针对其它命令流的高响应性。
背景技术
近年来,为了提高对已被数字化的影像数据、声音数据等进行压缩/展开等的媒体处理的处理效率,在非专利文献1中公开了一种多线程处理器,通过同时执行多个程序来提高运算效率。
另外,作为采用多线程处理器的技术有专利文献1。在专利文献1中公开了这样的技术:针对多个命令流(线程)分别设定处理的优先次序,优先对优先次序高的命令流进行处理。根据这种技术,能够按命令流单位动态地实现所需要的处理性能,并且提高整体的处理效率。
现有技术文献
专利文献
专利文献1:日本特开平10-124316号公报
非专利文献
非专利文献1:“A Multithreaded Processor Architecture with SimultaneousInstruction Issuing”,In Proc.Of ISS’91:International Symposium onSupercomputing,Fukuoka,Japan,pp.87-96,November 1991
发明概要
发明要解决的问题
可是,需要处理的命令流包括诸如图像处理等那样要求在规定的时间之前结束处理、即要求性能保证的命令流,和进行针对来自用户的指示的处理的命令流(不必在规定的时间之前结束处理的命令流)。
针对这些命令流,在采用专利文献1公开的技术进行并行处理时,对于要求性能保证的命令流,为了保证在规定的时间之前结束处理,需要设定比其它命令流(不要求性能保证的命令流)高的优先次序。
这样,要求性能保证的命令流优先被执行,不要求性能保证的命令流不被执行,因而例如即使有来自用户的指示,到要求性能保证的命令流结束为止,也不进行与该指示相关的处理。因此,用户感觉到针对自己所作的指示的响应较慢,并感觉到不快。
另外,相反,为了加快对用户指示的响应,可以考虑使该命令所属的命令流的优先次序高于其它命令流(要求性能保证的命令流),但若这样,对于要求性能保证的命令流,将不能保证在规定的时间内结束处理。
发明内容
因此,本发明正是鉴于上述问题而提出的,其目的在于,提供一种处理器、信息处理系统及方法,能够一并实现针对一个命令流的性能保证和针对其它命令流的高响应性。
用于解决问题的手段
为了达到上述目的,本发明提供一种具有L个(L为2以上的整数)运算器的处理器,其特征在于,具有:被分别输入M个(M为2以上的整数)命令流,包含M×Z个命令存储区域,以用来存储构成各命令流的Z个(Z为2以上的整数,且满足M×Z为L以上)命令;顺序信息保存单元,保存顺序信息,该顺序信息是对所述命令缓冲器内的所述M×Z个命令存储区域赋予了顺序的信息;提取单元,用于提取在所述命令缓冲器的所述M×Z个命令存储区域中存储的命令;以及控制单元,使所述提取单元按照基于所述顺序信息的顺序,从在所述M×Z个命令存储区域中存储的成为可执行状态的所有命令中提取L个命令,并将提取出的每个命令输入到不同运算器中。
发明效果
根据以上所述的结构,根据对M×Z个命令存储区域赋予了顺序的顺序信息,从在M×Z个命令存储区域中存储的成为可执行状态的所有命令中提取L个命令,因而处理器能够同时提取一个命令流的命令和其它命令流的命令。因此,例如,在一个命令流是要求性能保证的命令流、其它命令流是不要求性能保证的命令流的情况下,由于其它命令流的命令不需要等待一个命令流结束,因而处理器能够一并实现针对一个命令流的性能保证和针对其它命令流的高响应性。
附图说明
图1是表示处理器10的结构的图。
图2是表示各命令缓冲器103~105及发行命令确定部106的结构的图。
图3是表示命令发行前和发行后的命令缓冲器的保存内容的变化的图。
图4是表示优先度信息表300的数据结构的一例的图。
图5是表示在第1实施方式中确定应发行的命令的处理的动作的流程图。
图6是表示在第1实施方式中进行了采用第1命令流和第2命令流的并行处理的情况下各命令的分配(发行)的动作示意的图。
图7是表示处理器10a的结构的图。
图8是表示各命令缓冲器603~605及发行命令确定部606的结构的图。
图9(a)是表示更新前的优先度信息表800的数据结构的一例的图,图9(b)是表示更新后的优先度信息表800a的数据结构的一例的图。
图10是表示在第2实施方式中确定应发行的命令的处理的动作的流程图。
图11是表示在第2实施方式中更新优先度信息表800的处理的动作的流程图。
图12是表示在第2实施方式中进行了采用第1命令流和第2命令流的并行处理的情况下各命令的分配(发行)的动作示意的图。
图13是表示处理器10b的结构的图。
图14是表示各命令缓冲器1103~1105及发行命令确定部1106的结构的图。
图15(a)是表示更新前的优先度信息表1300的数据结构的一例的图,图15(b)是表示更新后的优先度信息表1300a的数据结构的一例的图。
图16是表示在第3实施方式中确定应发行的命令的处理的动作的流程图。
图17是表示更新优先度信息表1300的第1更新处理的动作的流程图。
图18是表示更新优先度信息表1300的第2更新处理的动作的流程图。
图19是表示在第3实施方式中进行了采用第1命令流和第2命令流的并行处理的情况下各命令的分配(发行)的动作示意的图。
图20是表示影像处理系统1600的结构的一例的图。
具体实施方式
1.第1实施方式
下面,参照附图说明本发明的实施方式。
1.1结构
图1是表示本发明的实施方式1的处理器10的结构的框图。
处理器10是同时独立地执行N(N为2以上的整数)个命令流(N个线程)的处理器,具有命令存储器101、命令组确定部102、N个命令缓冲器(第1命令缓冲器103、第2命令缓冲器104、…、第N命令缓冲器105)、发行命令确定部106、优先度确定部107、N个寄存器堆(register file)(第1寄存器堆108、第2寄存器堆109、…、第N寄存器堆110)、运算器组111、写回(write back)总线112。
这里,各命令缓冲器和寄存器堆是一对一地对应的,构成N个逻辑处理器。
并且,在本实施方式中,假设处理器10能够同时执行4个命令。
(1)命令存储器101
命令存储器101是保存处理器10中执行的命令的存储器,保存N个独立执行的命令流(线程)。
(2)命令组确定部102
命令组确定部102从命令处理器101中将属于各命令流的命令读出并进行解码,写入到被分配了该命令的命令缓冲器中。
(3)第1命令缓冲器103~第N命令缓冲器105
第i命令缓冲器(i为1以上N以下的整数)接收属于第i个命令流(下面称为第i命令流)的命令并进行保存。
具体地讲,第1命令缓冲器103如图2所示具有第1命令保存部201和第1命令流调度器202。
第1命令保存部201具有用于保存4个命令的区域即第1~第4存储区域201a~201d。各命令根据执行顺序被依次存储在第1~第4存储区域201a、201b、201c、201d中。例如,如图3所示,若执行(发行)在第1存储区域201a中保存的命令a1,则第2~第4存储区域201b、201c、201d分别保存的命令a2~a4逐个地移位,在空闲出来的第4存储区域201d中保存新的命令a5。
第1命令流调度器202具有与第1命令保存部201具有的4个第1~第4存储区域201a~201d分别对应的标志。在此,标志用于表示在对应的存储区域中存储的命令是否是可发行状态。例如,外部(例如命令组确定部102)根据各命令的流程请求,检测在机器工作周期中能够发行的命令,针对能够发行的命令,对标志设定表示可发行的值。
并且,第2命令缓冲器104也具有第2命令保存部203和第2命令流调度器204,第N命令缓冲器105也具有第N命令保存部205和第N命令流调度器206。这些构成要素与第1命令缓冲器103中的构成要素相同,因而在此省略说明。
(4)优先度确定部107
优先度确定部107保存优先度信息表300,该优先度信息表300用于在发行命令确定部106中确定发行的命令。
优先度信息表300例如如图4所示,包括优先度301、命令流302和命令序号303,具有N个命令缓冲器各自具有的合计4×N个表要素。
优先度301是针对N个命令缓冲器各自具有的合计4×N个存储区域而表示读出的顺序的值。
命令流302是识别命令流的值。在此,值i(i为1以上N以下的整数)表示第i命令流。
命令序号303是识别在第i命令保存部中保存由命令流302表示的第i命令流的命令的存储区域的值。在此,值n(n为1以上4以下的整数)表示第n存储区域。
例如,第1优先度的命令被表示在表要素304中,在此是指第1命令流的被存储于第1存储区域201a中的命令。
并且,成为第2优先度的命令被表示在表要素305中,在此是指第2命令流的被存储于第1存储区域203a中的命令。
成为第3优先度的命令被表示在表要素306中,在此是指第2命令流的被存储于第2存储区域201b中的命令。
成为第4优先度的命令被表示在表要素307中,在此是指第2命令流的被存储于第3存储区域201c中的命令。
成为第5优先度的命令被表示在表要素308中,在此是指第1命令流的被存储于第2存储区域201b中的命令。
在此,优先度信息表300中的各命令的优先度是被预先设定的。并且,其设定方法是,例如在第1命令流是要求一定的性能保证的命令流、且应该在规定时间内(例如时间t内)完成处理的情况下,对于第1命令流,按命令的每个发行定时(机器工作周期),以能够发行在时间t内完成处理所用的最小数量的命令的方式来分配优先度。在此,考虑以下情况:第1命令流通过按每个机器工作周期发行1个命令从而在规定时间内完成处理的情况。由于在本实施方式中同时执行4个命令,因而如图4所示,以使能够总是优先地发行第1命令流的命令的方式,分配在上位4个优先度中最高的1个优先度,从而按每个机器工作周期一定发行第1命令流的1个命令。
(5)发行命令确定部106
发行命令确定部106用于确定按每个机器工作周期从第1命令缓冲器103~第N命令缓冲器105发行的命令。
发行命令确定部106根据第1命令流调度器202~第N命令流调度器206和优先度信息表300,按照在优先度信息表300中示出的顺序,从在各存储区域中存储的成为可执行状态的所有命令中选择4个命令,将所选择的命令分别输出给独立的运算器。
在此,在图2中示出了发行命令确定部106的硬件结构。
发行命令确定部106具有第1命令确定部211~第4命令确定部214、命令选择部215、第1命令提取部221~第4命令提取部224。
(5-1)命令选择部215
命令选择部215根据第1命令流调度器202~第N命令流调度器206和优先度信息表300,按照在优先度信息表300中示出的顺序,从在各存储区域中存储的成为可执行状态的所有命令中确定出应选择的4个命令。具体地讲,分别从第1命令缓冲器103~第N命令缓冲器105接收表示各命令缓冲器内的能够发行的命令数量的信号,即接收表示成为可执行状态的命令数量的信号241~243,按照在优先度信息表300中示出的顺序来确定出应选择的4个命令。
并且,命令选择部215分别对第1命令确定部211~第4命令确定部214输出表示该命令确定部应取得的命令的发行命令选择信号251~254。在发行命令选择信号中包含表示应提取的命令的信息,例如表示保存有应提取的命令的命令缓冲器及其存储区域的信息。
(5-2)第1命令提取部221~第4命令提取部224
第n命令提取部(n为1以上4以下的整数)用于提取在第1命令缓冲器103~第N命令缓冲器105各自的第n存储区域中保存的命令。
下面,作为具体示例,说明从第1命令缓冲器103提取命令的情况。
第1命令提取部221与连接线231连接,第2命令提取部222与连接线232连接,第3命令提取部223与连接线233连接,第4命令提取部224与连接线234连接。在此,连接线231与第1存储区域201a连接,连接线232与第2存储区域201b连接,连接线233与第3存储区域201c连接,连接线234与第4存储区域201d连接。
第1命令提取部221经由连接线231将在第1存储区域中保存的命令读出,并输出给存在提取指示的命令确定部。
第2命令提取部222~第4命令提取部224也分别同样地,将在对应的存储区域中保存的命令经由与保存该命令的存储区域连接的连接线读出,并输出给存在提取指示的命令确定部。
(5-3)第1命令确定部211~第4命令确定部214
第1命令确定部211~第4命令确定部214分别与运算器组111具有的运算器一对一地对应。
下面,说明第1命令确定部211~第4命令确定部214各自的功能。
第n命令确定部(n为1以上4以下的整数)根据从命令选择部215接收的发行命令选择信号,确定从哪个命令缓冲器的哪个存储区域中取得命令,并对相应的第m命令提取部(m为1以上4以下的整数)进行控制以使得提取应提取的命令。
并且,若第n命令确定部取得由第m命令提取部提取出的命令,则向对应的运算器输出所取得的命令。
(6)第1寄存器堆108~第N寄存器堆110
第i寄存器堆(i为1以上N以下的整数)是寄存器组,通过执行在第i命令缓冲器中保存的命令流而保存作为读出和写入的对象的数据。
(7)运算器组111
运算器组111包含由加法器、乘法器等构成的多个运算器。另外,在此假设运算器组111具有4个运算器(运算器111a~111d)。并且,运算器111a对应于第1命令确定部211,运算器111b对应于第2命令确定部212,运算器111c对应于第3命令确定部213,运算器111d对应于第4命令确定部214。
在由运算器处理的命令中包含用于识别该命令所属的命令流的信息,根据该信息向对应的寄存器堆输出运算结果。
(8)写回总线112
写回总线112是用于将来自运算器组111的输出写回到第1寄存器堆108~第N寄存器堆110中的总线。
1.2动作
在此,使用图5所示的流程图来说明用于确定应发行的命令的动作。
命令选择部215,当确定在一个机器工作周期中发行的命令时,进行变量的初始化(i=1,j=1,k=4)(步骤S5)。其中,变量i是对在机器工作周期中发行的命令数量进行计数的计数器(counter)。变量j表示用于从图4的优先度信息表300中将信息读出的指针。变量k表示在机器工作周期中能够发行的命令的最大数量,在本实施例中是4。
命令选择部215判断变量i的值是否为变量k以下、即发行的命令数量是否为最大值以下(步骤S10)。
在判断为变量i的值是变量k以下的情况下(步骤S10:是),命令选择部215读出优先度信息表300的第j个条目,并判断该读出是否已成功(步骤S15)。
在判断为第j个条目的读出成功的情况下(步骤S15:是),命令选择部215判断所取得的第j个条目所表示的命令流的命令是否能够发行(步骤S20)。
在判断为不能发行的情况下(步骤S20:否),将变量j的值加1(步骤S25),使处理返回到步骤S15。
在判断为能够发行的情况下(步骤S20:是),命令选择部215对第i命令确定部输出发行命令选择信号。接收到发行命令选择信号的第i命令确定部,使与保存应发行的命令的存储区域对应的命令提取部提取该命令,并向对应的运算器输出由命令提取部提取出的命令(步骤S30)。
然后,将变量i的值加1并将变量j的值加1(步骤S35),处理返回到步骤S10。
并且,在判断为变量i的值不是变量k以下的情况下(步骤S10:否)以及判断为第j个条目的读出失败、即在指针表示的位置没有条目的情况下(步骤S15:否),处理结束。
1.3动作示意
图6表示在第1实施方式中进行了采用第1命令流和第2命令流的并行处理时各命令的分配(发行)的动作示意。
在此,在图6所示的动作示意中,纵轴表示时间,横轴表示命令的并行度。
栏目501表示第1命令流的命令执行的状态,表示总是最优先进行1个命令的发行。
栏目502表示第2命令流的命令执行的状态,表示采用在第1命令流中不使用的并行度来执行3个命令。
例如,在第1命令流是要求一定的性能保证的命令流、且在规定时间内(例如时间t内)总是发行1个命令从而能够满足其性能的情况下,根据本实施例,能够满足性能保证的条件并保持其它命令流的高响应性。
2.第2实施方式
在此,针对第2实施方式的处理器10a,以与第1实施方式的处理器10的不同点为中心进行说明。
图7是表示第2实施方式的处理器10a的结构的框图。
处理器10a是同时独立地执行N(N为2以上的整数)个命令流(N个线程)的处理器,具备命令存储器601、命令组确定部602、N个命令缓冲器(第1命令缓冲器603、第2命令缓冲器604、…、第N命令缓冲器605)、发行命令确定部606、优先度确定部607、N个寄存器堆(第1寄存器堆608、第2寄存器堆609、…、第N寄存器堆610)、运算器组611、写回总线612、优先度更新部613。
这里,各命令缓冲器和寄存器堆是一对一地对应的,构成N个逻辑处理器。
并且,在本实施方式中,假设处理器10a与第1实施方式所示的处理器10同样地能够同时执行4个命令。
(1)命令存储器601
命令存储器601与第1实施方式所示的命令存储器101同样,是对在处理器10a中执行的命令进行保存的存储器,保存N个独立执行的命令流(线程)。
(2)命令组确定部602
命令组确定部602与第1实施方式所示的命令组确定部102同样,因而在此省略说明。
(3)第1命令缓冲器603~第N命令缓冲器605
第i命令缓冲器(i为1以上N以下的整数)接收属于第i个命令流(下面称为第i命令流)的命令并进行保存。
具体地讲,第1命令缓冲器603如图8所示,具有第1命令保存部701和第1命令流调度器702。另外,第1命令保存部701和第1命令流调度器702分别与第1实施方式所示的第1命令保存部201和第1命令流调度器202相同,因而在此省略说明。
并且,第2命令缓冲器604也具有第2命令保存部703和第2命令流调度器704,第N命令缓冲器605也具有第N命令保存部705和第N命令流调度器706。这些构成要素也与第1实施方式相同,因而在此省略说明。
(4)优先度确定部607
优先度确定部607保存优先度信息表800,该优先度信息表800用于在发行命令确定部606中确定发行的命令。
优先度信息表800例如如图9所示,包括优先度801、命令流802和命令序号803,具有N个命令缓冲器各自具有的合计4×N个表要素。优先度801、命令流802和命令序号803分别与优先度301、命令流302和命令序号303相同,因而在此省略说明。
在此,假设优先度信息表800的初始状态利用在第1实施方式中示出的设定方法设定了各命令的优先度(发行的优先顺序)。
(5)优先度更新部613
优先度更新部613在一定条件下更新由优先度确定部607保存的优先度信息表800。
具体地讲,优先度更新部613按照来自软件的指示,更新由优先度确定部607保存的用于存储优先度信息的优先度信息表800。
通常,由优先度确定部607保存的优先度信息表800的各个条目(优先度信息)与存储器地址或控制寄存器映射(map),作为来自软件的指示,优先度更新部613若接收到来自多线程处理器的存储器访问命令或控制寄存器访问命令,则根据接收到的命令来更新优先度信息表800。例如,优先度更新部613接收多线程处理器的存储器访问命令或控制寄存器访问命令的写入地址和写入数据,如果写入地址表示优先度信息表800的条目中的某一个,则将写入数据写入到该条目中。在此,写入数据是指应写入到该条目中的更新后的优先度信息。并且,软件的指示例如通过预先写入的程序而执行,是在发行了(程序上执行了)规定的命令之后执行的。
另外,也可以通过软件的指示,一次更新多个条目。
在此,将更新了优先度信息表800的情况下的更新结果作为优先度信息表800a在图9(b)中示出。该例中,优先度更新部613通过软件的指示,将更新前的优先度信息表800中的优先度为5的优先度信息808的优先度更新为2。结果,更新前的优先度信息808在更新后被更新为优先度为2的优先度信息810,更新前的优先度信息805~807各自的优先度的次序各下降1,分别对应于更新后的优先度信息811~813。
另外,下面使用优先度信息表1300来说明各构成要素。
(6)发行命令确定部606
发行命令确定部606根据第1命令缓冲器103~第N命令缓冲器105来按每个机器工作周期确定发行的命令。
发行命令确定部606根据第1命令流调度器202~第N命令流调度器206和优先度信息表800,按照在优先度信息表800中示出的顺序,从在各存储区域中存储的成为可执行状态的所有命令中选择4个命令,将所选择的各个命令输出给独立的运算器。
在此,在图8中示出了发行命令确定部606的硬件结构。
发行命令确定部606具有第1命令确定部711~第4命令确定部714、命令选择部715、第1命令提取部721~第4命令提取部724。
(6-1)命令选择部715
命令选择部715与在第1实施方式中示出的命令选择部215相同。具体地讲,从第1命令缓冲器603~第N命令缓冲器605分别接收表示各个命令缓冲器内的能够发行的命令数量的信号,即接收表示成为可执行状态的命令数量的信号741~743,按照在优先度信息表800中示出的顺序,确定出应选择的4个命令。
并且,命令选择部715对第1命令确定部711~第4命令确定部714分别输出表示该命令确定部应取得的命令的发行命令选择信号751~754。在发行命令选择信号中包含表示应提取的命令的信息,例如示出保存应提取的命令的命令缓冲器及其存储区域的信息。
(6-2)第1命令提取部721~第4命令提取部724
第1命令提取部721~第4命令提取部724分别与在第1实施方式中示出的第1命令提取部221~第4命令提取部224相同,因而在此省略说明。
(6-3)第1命令确定部711~第4命令确定部714
第1命令确定部211~第4命令确定部214分别与运算器组611具有的运算器一对一地对应,其功能分别与在第1实施方式中示出的第1命令确定部211~第4命令确定部214相同,因而在此省略说明。
(7)第1寄存器堆608~第N寄存器堆610
第1寄存器堆608~第N寄存器堆610分别与在第1实施方式中示出的第1寄存器堆108~第N寄存器堆110相同,因而在此省略说明。
(8)运算器组611
运算器组611包含由加法器、乘法器等构成的多个运算器。另外,在此假设运算器组611具有4个运算器(运算器611a~611d)。并且,运算器611a对应于第1命令确定部711,运算器611b对应于第2命令确定部712,运算器611c对应于第3命令确定部713,运算器611d对应于第4命令确定部714。
在由运算器处理的命令中包含用于识别该命令所属的命令流的信息,根据该信息,向对应的寄存器堆输出运算结果。
(9)写回总线612
写回总线612是用于将来自运算器组611的输出写回到第1寄存器堆608~第N寄存器堆610中的总线。
2.2动作
(1)确定发行命令的动作
在此,使用图10所示的流程图来说明确定应发行的命令的动作。在此,为了便于说明,将使用的优先度信息表设为优先度信息表800。另外,在使用更新后的优先度信息表800a的情况下,处理动作相同。
命令选择部715,当确定在一个机器工作周期中发行的命令时,进行变量的初始化(i=1,j=1,k=4)(步骤S100)。其中,变量i是对在机器工作周期中发行的命令数量进行计数的计数器。变量j表示用于从优先度信息表800中读出信息的指针。变量k表示在机器工作周期中能够发行的命令的最大数量,在本实施例中是4。
命令选择部715判断变量i的值是否为变量k以下、即发行的命令数量是否为最大值以下(步骤S105)。
在判断为变量i的值是变量k以下的情况下(步骤S105:是),命令选择部715读出优先度信息表800的第j个条目,并判断该读出是否已成功(步骤S110)。
在判断为第j个条目的读出成功的情况下(步骤S110:是),命令选择部715判断所取得的第j个条目所表示的命令流的命令是否能够发行(步骤S115)。
在判断为不能发行的情况下(步骤S115:否),将变量j的值加1(步骤S120),处理返回到步骤S110。
在判断为能够发行的情况下(步骤S115:是),命令选择部715对第i命令确定部输出发行命令选择信号。接收到发行命令选择信号的第i命令确定部,使与保存应发行的命令的存储区域对应的命令提取部提取该命令,并向对应的运算器输出由命令提取部提取出的命令(步骤S125)。
然后,将变量i的值加1、将变量j的值加1(步骤S130),处理返回到步骤S105。
并且,在判断为变量i的值不是变量k以下的情况下(步骤S105:否)以及判断为第j个条目的读出失败、即在指针表示的位置没有条目的情况下(步骤S110:否),处理结束。
(2)优先度信息表的更新动作
在此,使用图11所示的流程图来说明优先度信息表的更新。
优先度更新部613判断是否从软件接收到与更新相关的指示(表示优先度信息表800的某个条目的存储器访问命令或控制寄存器访问命令)(步骤S200)。
在判断为已接收到的情况下(步骤S200:是),优先度更新部613根据接收到的指示来更新优先度信息表800(步骤S205)。
在更新优先度信息表800之后、以及判断为未接收到与更新相关的指示的情况下(步骤S200:否),处理返回到步骤S200,成为等待接收与更新相关的指示的状态。
另外,如上所述,与更新相关的指示是在发行了(程序上执行了)规定的命令之后发行的。
2.3动作示意
图12表示在第2实施方式中进行了采用第1命令流和第2命令流的并行处理的情况下的各个命令的分配(发行)的动作示意。
在此,在图12所示的动作示意中,纵轴表示时间,横轴表示命令的并行度。
栏目1001表示第1命令流的命令执行的状态,截止到t/2,按照图9(a)示出的优先度信息表800的优先次序,总是最优先进行1个命令的发行。
并且,栏目1002表示第2命令流的命令执行的状态,表示截止到t/2使用在第1命令流中不使用的并行度来执行命令。
在时刻t/2,根据软件的指示,图9(a)所示的优先度信息表800被更新为图9(b)所示的优先度信息表800a后,在第1命令流的命令中,按照图9(b)所示的优先度信息表800a的优先次序,总是最优先进行2个命令的发行,在第2命令流中进行2个命令的发行。
由此,例如,在第1命令流是要求一定的性能保证的命令流、且赋予1个命令的并行度从而能够满足其性能的情况下,根据本实施例,能够满足性能保证的条件,并保持其它命令流的高响应性。
3.第3实施方式
在此,针对第3实施方式的处理器10b,以与第1及第2实施方式的处理器10及10a的不同点为中心进行说明。
图13是表示第3实施方式的处理器10b的结构的框图。
处理器10b是同时独立地执行N(N为2以上的整数)个命令流(N个线程)的处理器,具备命令存储器1101、命令组确定部1102、N个命令缓冲器(第1命令缓冲器1103、第2命令缓冲器1104、…、第N命令缓冲器1105)、发行命令确定部1106、优先度确定部1107、N个寄存器堆(第1寄存器堆1108、第2寄存器堆1109、…、第N寄存器堆1110)、运算器组1111、写回总线1112、优先度更新部1113、性能监视部1114。
这里,各个命令缓冲器和寄存器堆是一对一地对应的,构成N个逻辑处理器。
并且,在本实施方式中,假设处理器10b与第1及第2实施方式所示的处理器10、10a同样地能够同时执行4个命令。
(1)命令存储器1101
命令存储器1101与在第1实施方式中示出的命令存储器101同样,是保存处理器10b中执行的命令的存储器,保存N个独立执行的命令流(线程)。
(2)命令组确定部1102
命令组确定部1102与在第1实施方式中示出的命令组确定部102相同,因而在此省略说明。
(3)第1命令缓冲器1103~第N命令缓冲器1105
第i命令缓冲器(i为1以上N以下的整数)接收属于第i个命令流(下面称为第i命令流)的命令并进行保存。
具体地讲,第1命令缓冲器1103如图14所示,具有第1命令保存部1201和第1命令流调度器1202。另外,第1命令保存部1201和第1命令流调度器1202分别与在第1实施方式中示出的第1命令保存部201和第1命令流调度器202相同,因而在此省略说明。
并且,第2命令缓冲器1104也具有第2命令保存部1203和第2命令流调度器1204,第N命令缓冲器1205也具有第N命令保存部1205和第N命令流调度器1206。这些构成要素也与第1实施方式相同,因而在此省略说明。
(4)优先度确定部1107
优先度确定部1107保存优先度信息表1300,该优先度信息表1300用于在发行命令确定部1106中确定发行的命令。
优先度信息表1300例如如图15(a)所示,包括优先度1301、命令流1302和命令序号1303,具有N个命令缓冲器各自具有的合计4×N个表要素。优先度1301、命令流1302和命令序号1303分别与优先度301、命令流302和命令序号303相同,因而在此省略说明。
在此,假设优先度信息表1300的初始状态利用在第1实施方式中示出的设定方法设定了各命令的优先度(发行的优先顺序)。
(5)性能监视部1114
性能监视部1114具备:与命令流对应的能够对N个命令流各自的执行命令数量进行减计数的N个执行命令数量计数器;以及能够对处理器10b的机器工作周期进行减计数的1个周期计数器。
若对应的命令流的命令在处理器10b上执行,则N个执行命令数量计数器进行减计数,减计数的量为已执行的命令的数量。另外,假设在动作开始时,对N个执行命令数量计数器分别设定了初始值。
在N个执行命令数量计数器中的某个计数器的计数器值为0时,性能监视部1114将计数器值已为0的情况通知优先度更新部1113。此时,假设在向优先度更新部1113通知的信息(下面称为第1通知信息)中包含表示计数器值已为0的命令流的识别符(命令流ID)。
1个周期计数器每当经过处理器10b的1个机器工作周期就进行减计数。若计数器值为0,则性能监视部1114利用存储了初始值的1个初始值寄存器的值,将周期计数器初始化。并且,性能监视部1114利用初始值寄存器的值,将存储了初始值的N个执行命令数量计数器初始化。
另外,在将各种计数器的值初始化时使用初始值寄存器的值,这些初始值寄存器的值,是根据在处理器上需要执行几个什么样的软件等系统结构而决定的,是由系统设计者决定、并利用系统控制软件写入的。
若周期计数器的计数器值成为0,性能监视部1114就通知优先度更新部1113。下面,将表示周期计数器的计数器值成为0的通知称为第2通知信息。并且,若性能监视部1114将第2通知信息通知优先度更新部1113,则将执行命令数量计数器初始化为初始值。
(6)优先度更新部1113
优先度更新部1113用于在一定条件下更新由优先度确定部607保存的优先度信息表800。
若优先度更新部1113接收第1通知信息,则更新优先度信息表的条目的优先度。例如,若N个执行命令数量计数器中的某个计数器的计数器值成为0,则优先度更新部1113从性能监视部1114接收包含了计数器值已为0这一信息以及其命令流ID的第1通知信息,并更新优先度信息表1300,使得与接收到的命令流ID对应的命令流的优先度为最低。
并且,优先度更新部1113若接收第2通知信息,则将优先度信息表的条目的优先度更新为初始状态的内容。例如,若周期计数器的计数器值成为0,则优先度更新部1113从性能监视部1114接收第2通知信息,将存储有所有命令流的优先度信息的表的条目的优先度恢复为初始状态。
在此,将更新了优先度信息表1300的情况下的更新结果作为优先度信息表1300a在图15(b)中示出。在此,假设仅执行第1命令流和第2命令流这两个命令流。该例中假设为,优先度更新部1113从性能监视部1114接收到第1通知信息,并且在第1通知信息中,执行命令数量计数器的值为0的命令流是第1命令流。
优先度信息表1300中,通过优先度更新部1113使第1命令流的优先度为最低,即,这里被更新为优先发行第2命令流的各命令。
通过该更新,在优先度信息表1300中示出的第2命令流的各优先度信息1305~1307的优先次序在更新之后分别上升一级,如更新后的优先度信息表1300a所示,变更为优先次序为1~3的各优先度信息1309~1311。并且,第1命令流的各优先度信息1304的优先次序通过该更新而从1变更为4,成为优先度信息1312。
另外,下面使用优先度信息表1300来说明各构成要素。
(7)发行命令确定部1106
发行命令确定部1106根据第1命令缓冲器1103~第N命令缓冲器1105按每个机器工作周期来确定发行的命令。
发行命令确定部1106根据第1命令流调度器1202~第N命令流调度器1206和优先度信息表1300,按照在优先度信息表1300中示出的顺序,从在各存储区域中存储的成为可执行状态的所有命令中选择4个命令,将所选择的命令分别输出给独立的运算器。
在此,在图14中示出了发行命令确定部1106的硬件结构。
发行命令确定部1106具有第1命令确定部1211~第4命令确定部1214、命令选择部1215、第1命令提取部1221~第4命令提取部1224。
(7-1)命令选择部1215
命令选择部1215与在第1实施方式中示出的命令选择部215相同。具体地讲,从第1命令缓冲器1103~第N命令缓冲器1105分别接收表示各命令缓冲器内的能够发行的命令数量的信号,即接收表示成为可执行状态的命令数量的信号1241~1243,按照在优先度信息表1300中示出的顺序来确定应选择的4个命令。
并且,命令选择部1215对第1命令确定部1211~第4命令确定部1214分别输出表示该命令确定部应取得的命令的发行命令选择信号1251~1254。在发行命令选择信号中包含表示应提取的命令的信息,例如包含表示保存应提取的命令的命令缓冲器及其存储区域的信息。
(7-2)第1命令提取部1221~第4命令提取部1224
第1命令提取部1221~第4命令提取部1224分别与在第1实施方式中示出的第1命令提取部221~第4命令提取部224相同,因而在此省略说明。
(7-3)第1命令确定部1211~第4命令确定部1214
第1命令确定部1211~第4命令确定部1214分别与运算器组1111具有的运算器一对一地对应,其功能分别与在第1实施方式中示出的第1命令确定部211~第4命令确定部214相同,因而在此省略说明。
(8)第1寄存器堆1108~第N寄存器堆1110
第1寄存器堆1108~第N寄存器堆1110分别与在第1实施方式中示出的第1寄存器堆108~第N寄存器堆110相同,因而在此省略说明。
(9)运算器组1111
运算器组1111包含由加法器、乘法器等构成的多个运算器。另外,在此假设运算器组1111具有4个运算器(运算器1111a~1111d)。并且,假设运算器1111a对应于第1命令确定部1211,运算器1111b对应于第2命令确定部1212,运算器1111c对应于第3命令确定部1213,运算器1111d对应于第4命令确定部1214。
在由运算器处理的命令中包含用于识别该命令所属的命令流的信息,根据该信息,向对应的寄存器堆输出运算结果。
(10)写回总线1112
写回总线1112是用于将来自运算器组1111的输出写回到第1寄存器堆1108~第N寄存器堆1110中的总线。
3.2动作
(1)确定发行命令的动作
在此,使用图16所示的流程图来说明确定应发行的命令的动作。在此,为了便于说明,将使用的优先度信息表设为优先度信息表1300。另外,在使用更新后的优先度信息表1300a的情况下,处理动作相同。
命令选择部1215当确定在一个机器工作周期中发行的命令时,进行变量的初始化(i=1,j=1,k=4)(步骤S300)。其中,变量i是对在机器工作周期中发行的命令数量进行计数的计数器。变量j表示用于从优先度信息表1300中读出信息的指针。变量k表示在机器工作周期中能够发行的命令的最大数量,在本实施例中是4。
命令选择部1215判断变量i的值是否为变量k以下、即发行的命令数量是否为最大值以下(步骤S305)。
在判断为变量i的值是变量k以下的情况下(步骤S305:是),命令选择部1215读出优先度信息表1300的第j个条目,并判断该读出是否已成功(步骤S310)。
在判断为第j个条目的读出成功的情况下(步骤S310:是),命令选择部1215判断所取得的第j个条目所表示的命令流的命令是否能够发行(步骤S315)。
在判断为不能发行的情况下(步骤S315:否),将变量j的值加1(步骤S320),处理返回到步骤S310。
在判断为能够发行的情况下(步骤S315:是),命令选择部1215对第i命令确定部输出发行命令选择信号。接收到发行命令选择信号的第i命令确定部,使与保存应发行的命令的存储区域对应的命令提取部提取该命令,并向对应的运算器输出由命令提取部提取出的命令(步骤S325)。
然后,将变量i的值加1、将变量j的值加1(步骤S330),处理返回到步骤S305。
并且,在判断为变量i的值不是变量k以下的情况下(步骤S305:否)以及判断为第j个条目的读出失败、即在指针表示的位置没有条目的情况下(步骤S310:否),处理结束。
(2)优先度信息表的更新动作
在此,说明使用执行命令数量计数器的更新处理(下面称为第1更新处理)、和使用周期计数器的更新处理(第2更新处理)。
(2-1)第1更新处理
首先,使用图17所示的流程图来说明第1更新处理。
性能监视部1114在处理开始时将N个执行命令数量计数器全部初始化(步骤S400)。
性能监视部1114若检测到命令的执行(步骤S405),将与包含已执行命令的命令流对应的执行命令数量计数器的值减1(步骤S410)。
判断进行了减法运算后的执行命令数量计数器的值是否为0(步骤S415)。
在判断为0的情况下(步骤S415:是),性能监视部1114生成第1通知信息并通知优先度更新部1113(步骤S420)。此时,所生成的第1通知信息中包含用于识别执行命令数量计数器的值为0的命令流的命令流ID。
优先度更新部1113若从性能监视部1114接收第1通知信息,则更新优先度信息表1300,使得利用在接收到的第1通知信息中包含的命令流ID识别的命令流的优先度为最低(步骤S425)。
在更新优先度信息表1300之后、以及判断为进行减法运算后的执行命令数量计数器的值不是0的情况下(步骤S415:否),处理返回到步骤S405。
(2-2)第2更新处理
下面,使用图18所示的流程图来说明第2更新处理。
性能监视部1114在处理开始时将周期计数器初始化(步骤S500)。
性能监视部1114判断处理时间是否已经过1个周期(步骤S505)。
在判断为已经过1个周期的情况下(步骤S505:是),性能监视部1114将周期计数器的值减1(步骤S510)。
判断进行减法运算后的执行命令数量计数器的值是否为0(步骤S515)。
在判断为0的情况下(步骤S515:是),性能监视部1114生成第2通知信息并通知优先度更新部1113(步骤S520)。
性能监视部1114将周期计数器初始化(步骤S525),并且将N个执行命令数量计数器全部初始化(步骤S530)。
优先度更新部1113若从性能监视部1114接收第2通知信息,将优先度信息表的内容更新为初始状态的内容(步骤S535)。
在更新优先度信息表之后、判断为没有经过1个周期的情况下(步骤S505:否)、以及判断为进行减法运算后的周期计数器的值不是0的情况下(步骤S515:否),处理返回到步骤S505。
3.3动作示意
图19表示在第3实施方式中进行了采用第1命令流和第2命令流的并行处理的情况下的各命令的分配(发行)的动作示意。
在此,在图19所示的动作示意中,纵轴表示时间,横轴表示命令的并行度。
并且,假设第1命令流每次最少发行1个命令从而在时间t内完成处理。
在图19中,栏目1501表示第1命令流的命令执行的状态,截止到t/4总是进行2个命令的发行,之后截止到3t/4进行1个命令的发行。
栏目1502表示第2命令流的命令执行的状态,表示截止到t/4执行2个命令。在图15(a)示出的优先度信息表1300中,根据截止到上位第4个的优先次序,第2命令流的命令的执行被允许优先执行3个命令,但在没有完成发行的准备的情况下,允许按照接着的优先次序来执行。因此,如图19所示,在只允许执行2个第2命令流的命令的情况下,执行2个第1命令流的命令。
然后,在第2命令流中,在时间t/4~3t/4的期间,执行3个命令流。
在时间3t/4的时刻,与第1命令流对应的执行命令计数器的值成为0。这是因为,在时间0~t/4的期间发行了2个命令,所以与第1命令流对应的执行命令计数器被减去合计为2的值,比每次一个地发行命令的情况相比,提前了t/4结束处理,即执行命令计数器的值成为0。
这样,在时间3t/4的时刻,优先度信息表1300例如被更新为图15(b)所示的优先度信息表1300a,在以后的处理中,总是每次4个地发行第2命令流的命令。
并且,若到达时间t,周期计数器的值为0,各种计数器的值被初始化,而且优先度信息表的内容被更新为初始状态的内容即优先度信息表1300。
如上,在一定周期内完成了一定处理的命令流成为息此以后不消耗处理器上的执行资源的状态,其它命令流能够得到更多的执行机会。
4.第4实施方式
在此,说明采用第1实施方式示出的处理器10的影像处理系统1600。
影像处理系统1600例如是对影像信号进行解码处理并向显示装置(电视机等)输出的影像处理装置。
在此,影像处理系统1600具有第1实施方式示出的处理器10,对从外部接收到的影像信号进行解码处理,并进行基于来自用户输入装置(遥控器)1605的指示的处理。
另外,处理器10的结构已在图1、2中示出,因而在此省略详细的结构。在下面的说明中,根据需要使用在第1实施方式中说明的构成要素进行说明。
处理器10进行比特流解析、被可变长编码(variable length coding)后的信号的解码处理、反量化、反频率变换、动态补偿、去块滤波(deblock filter)处理,以便对使用H.264等规格被压缩的影像信号进行解码。这必须要保证一定性能以便使影像不会产生紊乱。但不需要分配此程度以上的性能。
并且,与来自遥控器等的用户输入对应的处理要求尽可能快速地进行处理的即时响应性。
因此,通过将在第1实施方式中示出的第1命令流作为对影像信号进行解码的处理(影像解码处理),将第2命令流作为由用户输入装置1605所指示的处理(用户输入处理),从而能够在单一的多线程处理器上构建一并实现性能保证和高响应性的实时影像处理系统。
这是因为,能够按照优先度信息表300的优先度,总是发行与影像解码处理相关的1个命令,对未使用的并行度、即在影像解码处理中不使用的剩余的3个运算器分配与用户输入处理相关的命令,因而能够满足针对影像解码处理的性能保证的条件,并立即执行与用户输入处理相关的命令。
5.变形例
以上,根据各实施方式进行了说明,但本发明不限于上述各实施方式。例如,可以考虑以下所述的变形例。
(1)在上述各实施方式中,优先度信息表包括优先度、命令流和命令序号,但不限于此。
优先度信息表也可以不具有命令序号。在这种情况下,使用命令流的识别在项目中出现的命令流的值的出现次数累计值,由此能够确定出对应的命令序号。
(2)在上述各实施方式中,将在一个机器工作周期中能够对运算器组发行的命令设为4个命令,但不限于此。能够在一个机器工作周期中发行的命令数量只要是2个以上即可,不限于4个。
(3)在上述第2实施方式中,优先度信息表的更新是基于软件的指示而进行的,但不限于此。
也可以基于硬件的指示来进行。
在这种情况下,优先度更新部1113按照来自硬件的指示,更新由优先度确定部1107保存的用于存储优先度信息的优先度信息表1300。
具体地讲,优先度更新部1113保存与由优先度确定部1107保存的优先度信息表1300的条目对应的更新优先度信息。例如,优先度更新部1113接收来自硬件的更新信号,根据更新优先度信息,更新对应的优先度信息表1300的条目。并且,硬件的指示例如被预先设定为,若检测到发行了(程序上执行了)规定的命令则进行指示。
另外,也可以按照硬件的指示,一次更新多个条目。
(4)在上述第4实施方式中,影像处理系统1600对影像信号进行解码,但不限于此。
影像处理系统1600也可以对影像信号进行编码。
在这种情况下,例如能够通过以下方式来实现:第1命令缓冲器保存与对影像信号进行编码的处理相关的命令,第2命令缓冲器保存与用户输入处理相关的命令,按照在优先度信息表中示出的优先度,执行在各命令缓冲器中保存的命令。
并且,作为对影像信号进行解码、编码的装置,有DVD记录器、数字电视机等。即,影像处理系统1600也可以是进行影像、声音的媒体处理的装置。
(5)在上述第4实施方式中,影像处理系统1600采用了在第1实施方式中示出的处理器10,但不限于此。
影像处理系统1600也可以采用在第2实施方式中示出的处理器10a和第3实施方式中示出的处理器10b中的任意一个处理器。
(6)在上述第2及第3实施方式中示出的处理器10a和10b也可以采用FPGA(Field Programmable Gate Array:现场可编程门阵列),利用FPGA的功能来更新优先度信息表。
(7)在上述各实施方式中,各命令缓冲器的命令保存部中的存储区域的个数与运算器的个数相同,但不限于此。
各命令缓冲器的命令保存部中的存储区域的个数也可以少于运算器的个数。或者,存储区域的个数也可以多于运算器的个数。
或者,关于命令流的个数、即命令缓冲器的个数(例如M个),各命令缓冲器的存储区域为Z个的情况下,所有存储区域的个数(M×Z)也可以是运算器的个数以上。在这种情况下,例如,发行命令确定部106按照优先度的次序,根据所有存储区域的个数(M×Z)取得运算器的个数的量的命令。
(8)在上述第1实施方式中,对于第1命令流,说明了按每个机器工作周期而发行1个命令从而在规定时间内完成处理的情况,但不限于此。
也可以是,对于第1命令流,保证按每个机器工作周期发行1个命令的机会,从而在规定时间内完成处理。
并且,在第2实施方式中也一样,也可以对第1命令流保证按每个机器工作周期发行1个命令的机会,从而在规定时间内完成处理。
另外,在第3实施方式中也一样,也可以对第1命令流保证按每个机器工作周期发行1个命令的机会,从而在规定时间内完成处理。在这种情况下,若在处理器10b上执行对应的命令流的命令,则性能监视部1114具有的N个执行命令数量计数器进行减计数,减去所执行的命令的数量。并且,即使在没有进行命令的发行的情况下,对于对应的命令流的命令分配了最优先的优先度的周期也被减计数。另外,在动作开始时,与第3实施方式同样,对N个执行命令数量计数器分别设定初始值。
(9)也可以是,在存储器中预先存储记述了在上述各实施方式和各变形例中说明的方法的步骤的程序,CPU(Central Processing Unit:中央处理单元)等从存储器读出程序,并执行所读出的程序,由此实现上述方法。
(10)也可以是,将记述了在上述各实施方式和各变形例中说明的方法的步骤的程序存储在记录介质中,并进行发布。
(11)也可以是这些实施方式和变形例的组合。
6.补充
(1)作为本发明的一个实施方式的具有L个(L为2以上的整数)运算器的处理器,其特征在于,具有:命令缓冲器,M个(M为2以上的整数)命令流分别被区别输入该命令缓冲器,该命令缓冲器包含M×Z个命令存储区域,以用来存储构成各命令流的Z个(Z为2以上的整数,且满足M×Z为L以上)的命令;顺序信息保存单元,保存顺序信息,该顺序信息是对所述命令缓冲器内的所述M×Z个命令存储区域赋予顺序的信息;提取单元,用于提取在所述命令缓冲器的所述M×Z个命令存储区域中存储的命令;以及控制单元,使所述提取单元按照基于所述顺序信息的顺序,从在所述M×Z个命令存储区域中存储的成为可执行状态的所有命令中提取L个命令,并按提取出的每个命令输入到不同运算器中。
根据这种结构,处理器根据对M×Z个命令存储区域赋予了顺序的顺序信息,从在M×Z个命令存储区域中存储的成为可执行状态的所有命令中提取L个命令,因而能够同时提取一个命令流的命令和其它命令流的命令。因此,例如,在一个命令流是要求性能保证的命令流、其它命令流是不要求性能保证的命令流的情况下,由于其它命令流的命令不需要等待一个命令流结束,因而处理器能够一并实现针对一个命令流的性能保证和针对其它命令流的高响应性。
(2)在此,也可以是,所述命令缓冲器对于所述M×Z个命令存储区域分别具有标志,该标志表示在该命令存储区域中存储的命令是否能够执行,所述控制单元根据M×Z个标志各自的内容,确定处于可执行状态的所有命令。
根据这种结构,M×Z个命令存储区域分别使用标志来管理在该存储区域中存储的命令是否处于可执行状态,因而处理器能够容易地确定可执行状态的所有命令。
(3)在此,也可以是,所述M个命令流中的一个命令流是应保证在规定时间内完成处理的性能保证命令流,所述顺序信息对于保证所述性能保证命令流的处理在所述规定时间内结束所用到的最小个数的命令,赋予L以下的顺序。
根据这种结构,对于应保证在规定时间内完成处理的性能保证命令流,对于保证在规定时间内完成处理所用到的最小个数的命令赋予L以下的顺序,因而总是执行最小个数的命令,处理器不会产生在规定时间内不完成处理的处理故障。
(4)在此,也可以是,所述性能保证命令流用于进行图像的解码处理,所述处理器被设置在进行图像的解码处理的图像处理系统中。
根据这种结构,处理器能够一并实现需要性能保证的图像解码处理、和针对其它命令流的高响应性。
(5)在此,也可以是,所述性能保证命令流用于进行图像的编码处理,所述处理器被设置在进行图像编码处理的图像处理系统中。
根据这种结构,处理器能够一并实现需要性能保证的图像编码处理、和针对其它命令流的高响应性。
(6)在此,也可以是,所述处理器还具有顺序信息更新单元,按所述M个命令流的每一个,监视在该命令流中向一个运算器输出的命令数量,若在一个命令流中输出的命令数量超过规定值,则顺序信息更新单元更新所述顺序信息,以使得存储了构成该命令流的Z个命令的Z个命令存储区域的顺序降低。
根据这种结构,若对一个命令流发行的命令数量达到规定数,则处理器使存储了构成该一个命令流的Z个命令的Z个命令存储区域的顺序降低,因而优先对其它命令流分配命令的发行。因此,例如,在一个命令流的命令结束的情况下,不需要对该一个命令流优先分配命令的发行,因而对其它命令流分配命令的发行,由此能够提高针对其它命令流的处理效率。
(7)在此,也可以是,所述处理器还具有顺序信息更新单元,按所述M个命令流的每一个,监视在该命令流中向一个运算器输出的命令,若在一个命令流中输出了特定的命令,则该顺序信息更新单元更新所述顺序信息,以使得存储了构成该命令流的Z个命令的Z个命令存储区域的顺序降低。
根据这种结构,若一个命令流发行特定的命令,则处理器之后立刻使存储了构成该一个命令流的Z个命令的Z个命令存储区域的顺序降低,因而优先对其它命令流分配命令的发行。因此,例如,在对一个命令流执行特定的命令、然后不需要优先执行命令的情况下,相比对该一个命令流优先分配命令的发行,能够通过对其它命令流优先分配命令的发行来提高针对其它命令流的处理效率。
产业上的可利用性
本发明的处理器能够应用于需要实现针对一个命令流的性能保证和针对其它命令流的高响应性的装置。
标号说明
10处理器
101命令存储器
102命令组确定部
103~105第1命令缓冲器~第N命令缓冲器
106发行命令确定部
107优先度确定部
108~110第1寄存器堆~第N寄存器堆
111运算器组
112写回总线
201第1命令保存部
201a~201d第1~第4存储区域
202第1命令流调度器
203第2命令保存部
204第2命令流调度器
205第N命令保存部
206第N命令流调度器
211~214第1命令确定部~第4命令确定部
215命令选择部
221~224第1命令提取部~第4命令提取部
751~754发行命令选择信号。
Claims (5)
1.一种具有L个运算器的处理器,其特征在于,具有:
命令缓冲器,M个命令流分别输入所述命令缓冲器,所述命令缓冲器包含M×Z个命令存储区域,以用来存储构成各命令流的Z个命令;
顺序信息保存单元,保存M×Z个顺序信息,所述M×Z个顺序信息是对所述命令缓冲器内的所述M×Z个命令存储区域赋予了发行命令的顺序的信息;
提取单元,用于提取在所述命令缓冲器的所述M×Z个命令存储区域中存储的命令;
控制单元,使所述提取单元按照基于所述顺序信息的顺序,从在所述M×Z个命令存储区域中存储的成为可执行状态的所有命令中提取L个命令,并将提取出的每个命令输入到不同运算器中;
性能监视部,包括执行命令计数器和周期计数器;以及
优先度更新部,
其中,L为2以上的整数,M为2以上的整数,Z为2以上的整数,
所述M个命令流中的1个命令流是应保证在规定时间内完成处理的性能保证命令流,
M×Z个顺序信息是优先度信息表,构成优先度信息表的各个顺序信息是将命令流的序号及命令流内的命令序号的组与优先度建立了对应的信息,各顺序信息按照所记载的优先度排列,M×Z个顺序信息中的与连续的L个优先度对应的L个顺序信息中,一定包含1个性能保证命令流的序号,命令流内的命令序号是对命令缓冲器中的M×Z个命令存储区域进行识别的序号,
每发行1个命令,所述性能监视部就将执行命令计数器的计数值减1,每经过1个机器工作周期,所述性能监视部就将周期计数器的计数值减1,
当针对由执行命令计数器所示的特定命令流的发行命令数成为规定数量时,所述优先度更新部使在所述优先度信息表中记载的属于所述命令流的命令的优先度为最低,当周期计数器的计数成为规定数量时,所述优先度更新部将优先度信息表初始化。
2.根据权利要求1所述的处理器,其特征在于,
所述命令缓冲器对于所述M×Z个命令存储区域分别具有表示在所述命令存储区域中存储的命令是否能够执行的标志,
所述控制单元根据M×Z个标志各自的内容,确定处于可执行状态的所有命令。
3.根据权利要求1所述的处理器,其特征在于,
所述性能保证命令流用于进行图像的解码处理,
所述处理器被设置在进行图像解码处理的图像处理系统中。
4.根据权利要求1所述的处理器,其特征在于,
所述性能保证命令流用于进行图像的编码处理,
所述处理器被设置在进行图像编码处理的图像处理系统中。
5.一种在具有L个运算器的处理器中使用的方法,其特征在于,
所述处理器具有:
命令缓冲器,M个命令流分别输入所述命令缓冲器,所述命令缓冲器包含M×Z个命令存储区域,以用来存储构成各命令流的Z个命令;
顺序信息保存单元,保存M×Z个顺序信息,所述M×Z个顺序信息是对所述命令缓冲器内的所述M×Z个命令存储区域赋予了发行命令的顺序的信息;
性能监视部,包括执行命令计数器和周期计数器;以及
优先度更新部,
所述方法包含以下步骤:
提取步骤,用于提取在所述命令缓冲器的所述M×Z个命令存储区域中存储的命令;以及
控制步骤,使所述提取步骤按照基于所述顺序信息的顺序,从在所述M×Z个命令存储区域中存储的成为可执行状态的所有命令中提取L个命令,并将提取出的每个命令输入到不同运算器中,
其中,L为2以上的整数,M为2以上的整数,Z为2以上的整数,
所述M个命令流中的1个命令流是应保证在规定时间内完成处理的性能保证命令流,
M×Z个顺序信息是优先度信息表,构成优先度信息表的各个顺序信息是将命令流的序号及命令流内的命令序号的组与优先度建立了对应的信息,各顺序信息按照所记载的优先度排列,M×Z个顺序信息中的与连续的L个优先度对应的L个顺序信息中,一定包含1个性能保证命令流的序号,命令流内的命令序号是对命令缓冲器中的M×Z个命令存储区域进行识别的序号,
每发行1个命令,所述性能监视部就将执行命令计数器的计数值减1,每经过1个机器工作周期,所述性能监视部就将周期计数器的计数值减1,
当针对由执行命令计数器所示的特定命令流的发行命令数成为规定数量时,使在所述优先度信息表中记载的属于所述命令流的命令的优先度为最低,当周期计数器的计数成为规定数量时,将优先度信息表初始化。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009-119508 | 2009-05-18 | ||
JP2009119508 | 2009-05-18 | ||
PCT/JP2010/003354 WO2010134329A1 (ja) | 2009-05-18 | 2010-05-18 | プロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102428441A CN102428441A (zh) | 2012-04-25 |
CN102428441B true CN102428441B (zh) | 2015-04-08 |
Family
ID=43126022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080021569.6A Active CN102428441B (zh) | 2009-05-18 | 2010-05-18 | 处理器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8788793B2 (zh) |
EP (1) | EP2434392B1 (zh) |
JP (1) | JP5330507B2 (zh) |
CN (1) | CN102428441B (zh) |
WO (1) | WO2010134329A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5803972B2 (ja) | 2013-04-18 | 2015-11-04 | 株式会社デンソー | マルチコアプロセッサ |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430851A (en) * | 1991-06-06 | 1995-07-04 | Matsushita Electric Industrial Co., Ltd. | Apparatus for simultaneously scheduling instruction from plural instruction streams into plural instruction execution units |
CN101133391A (zh) * | 2005-02-04 | 2008-02-27 | 美普思科技有限公司 | 多线程微处理器中的二分化线程调度器 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1291765B1 (en) | 1996-08-27 | 2009-12-30 | Panasonic Corporation | Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream |
JP3760035B2 (ja) | 1996-08-27 | 2006-03-29 | 松下電器産業株式会社 | 複数の命令流を独立に処理し、命令流単位に処理性能を柔軟に制御するマルチスレッドプロセッサ |
US6477562B2 (en) | 1998-12-16 | 2002-11-05 | Clearwater Networks, Inc. | Prioritized instruction scheduling for multi-streaming processors |
US7518993B1 (en) * | 1999-11-19 | 2009-04-14 | The United States Of America As Represented By The Secretary Of The Navy | Prioritizing resource utilization in multi-thread computing system |
US6658551B1 (en) | 2000-03-30 | 2003-12-02 | Agere Systems Inc. | Method and apparatus for identifying splittable packets in a multithreaded VLIW processor |
JP3646137B2 (ja) | 2003-03-25 | 2005-05-11 | 独立行政法人科学技術振興機構 | 命令発行方法及び装置、中央演算装置、命令発行プログラム及びそれを記憶したコンピュータ読み取り可能な記憶媒体 |
JP2006127302A (ja) | 2004-10-29 | 2006-05-18 | Internatl Business Mach Corp <Ibm> | 情報処理装置、コンパイラ、及びコンパイラプログラム |
US7418576B1 (en) * | 2004-11-17 | 2008-08-26 | Nvidia Corporation | Prioritized issuing of operation dedicated execution unit tagged instructions from multiple different type threads performing different set of operations |
US20070101256A1 (en) | 2005-11-01 | 2007-05-03 | Charles Simonyi | Perfect source control |
JP2008123045A (ja) * | 2006-11-08 | 2008-05-29 | Matsushita Electric Ind Co Ltd | プロセッサ |
-
2010
- 2010-05-18 EP EP10777567.8A patent/EP2434392B1/en active Active
- 2010-05-18 JP JP2011514332A patent/JP5330507B2/ja active Active
- 2010-05-18 WO PCT/JP2010/003354 patent/WO2010134329A1/ja active Application Filing
- 2010-05-18 CN CN201080021569.6A patent/CN102428441B/zh active Active
- 2010-05-18 US US13/320,668 patent/US8788793B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430851A (en) * | 1991-06-06 | 1995-07-04 | Matsushita Electric Industrial Co., Ltd. | Apparatus for simultaneously scheduling instruction from plural instruction streams into plural instruction execution units |
CN101133391A (zh) * | 2005-02-04 | 2008-02-27 | 美普思科技有限公司 | 多线程微处理器中的二分化线程调度器 |
Also Published As
Publication number | Publication date |
---|---|
EP2434392A4 (en) | 2012-10-03 |
US8788793B2 (en) | 2014-07-22 |
JP5330507B2 (ja) | 2013-10-30 |
US20120060017A1 (en) | 2012-03-08 |
CN102428441A (zh) | 2012-04-25 |
EP2434392B1 (en) | 2014-08-13 |
EP2434392A1 (en) | 2012-03-28 |
WO2010134329A1 (ja) | 2010-11-25 |
JPWO2010134329A1 (ja) | 2012-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103514053B (zh) | 一种基于共享内存的进程间通讯方法 | |
CN102483703B (zh) | 计算机线程至异构资源的映射 | |
JP3561915B2 (ja) | スーパースカラ型プロセサにおいて命令処理を制御するためタグを割り当てるシステム及び方法 | |
CN103019810A (zh) | 具有不同执行优先级的计算任务的调度和管理 | |
TWI498819B (zh) | 執行成型記憶體存取作業的系統和方法 | |
US20100045682A1 (en) | Apparatus and method for communicating between a central processing unit and a graphics processing unit | |
CN103226463A (zh) | 用于使用预解码数据调度指令的方法和装置 | |
CN102473113A (zh) | 线程转移:向核分配线程 | |
CN102067088A (zh) | 多处理器 | |
JP2009134391A (ja) | ストリーム処理装置、ストリーム処理方法及びデータ処理システム | |
CN103279379A (zh) | 用于在没有指令解码的情况下调度指令的方法和装置 | |
CN104050032A (zh) | 用于有条件的屏障和急迫的屏障的硬件调度的系统和方法 | |
CN103207810A (zh) | 计算任务状态封装 | |
US6978358B2 (en) | Executing stack-based instructions within a data processing apparatus arranged to apply operations to data items stored in registers | |
US8601232B2 (en) | Memory management device, memory management method, memory management program, computer-readable recording medium recording memory management program and integrated circuit | |
CN102483708B (zh) | 处理器 | |
TW479196B (en) | Data processing by means of an arithmetic logic unit and a stack | |
KR102332523B1 (ko) | 연산 처리 장치 및 방법 | |
CN102428441B (zh) | 处理器 | |
JP2008310693A (ja) | 情報処理装置 | |
CN101421705A (zh) | 具有高储存容量的多媒体卡 | |
CN103460180B (zh) | 带有断言寄存器的处理器系统、计算机系统和用于管理断言的方法 | |
CN105404591B (zh) | 处理器系统及其存储器控制方法 | |
CN101939733A (zh) | 外部设备存取装置、其控制方法及系统大规模集成电路 | |
US9038077B1 (en) | Data transfer protection in a multi-tasking modeling environment |
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 | ||
ASS | Succession or assignment of patent right |
Owner name: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT CO., LT Free format text: FORMER OWNER: MATSUSHITA ELECTRIC INDUSTRIAL CO, LTD. Effective date: 20150902 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20150902 Address after: Osaka Japan Patentee after: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT Co.,Ltd. Address before: Osaka Japan Patentee before: Matsushita Electric Industrial Co.,Ltd. |