CN103718158B - 多处理器系统 - Google Patents
多处理器系统 Download PDFInfo
- Publication number
- CN103718158B CN103718158B CN201280035369.5A CN201280035369A CN103718158B CN 103718158 B CN103718158 B CN 103718158B CN 201280035369 A CN201280035369 A CN 201280035369A CN 103718158 B CN103718158 B CN 103718158B
- Authority
- CN
- China
- Prior art keywords
- order
- processor
- determined
- unit
- coprocessor
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims abstract description 172
- 230000008569 process Effects 0.000 claims abstract description 167
- 238000001514 detection method Methods 0.000 claims description 7
- 230000000977 initiatory effect Effects 0.000 claims 1
- 238000003672 processing method Methods 0.000 claims 1
- 230000009471 action Effects 0.000 abstract description 41
- 238000009826 distribution Methods 0.000 description 32
- 238000013500 data storage Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 7
- 238000013139 quantization Methods 0.000 description 5
- 230000004069 differentiation Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 244000045947 parasite Species 0.000 description 2
- 238000011002 quantification Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000003860 storage Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30181—Instruction operation extension or modification
- G06F9/30185—Instruction operation extension or modification according to one or more bits in the instruction, e.g. prefix, sub-opcode
-
- 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
-
- 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/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
- Advance Control (AREA)
Abstract
本发明提供能够高效地调试一个处理器的动作和另一个处理器的动作的多处理器系统。在具有第1处理器、和接收来自该第1处理器的通知并执行处理的第2处理器的多处理器系统中,所述第1处理器从命令串中逐次确定成为执行对象的命令,在所确定的命令是处理委托命令的情况下,向所述第2处理器进行基于该处理委托的通知,在不是处理委托命令的情况下执行该命令,并且判别是否设定了调试模式,在判定为设定了调试模式的情况下,在确定处理委托命令时,使以后的命令的确定停止,在进行所述通知后,在检测到所述第2处理器已结束与所述通知相对应的处理时,重新开始命令的确定。
Description
技术领域
本发明涉及在具有主处理器和协处理器的多处理器系统中提高软件调试(debug)效率的技术。
背景技术
用于进行被数字化的影像数据或声音数据等的压缩、解压缩等的媒体处理,其运算量非常大。因此,用于进行媒体处理的专用软件和高性能的DSP(Digital Signal Processor:数字信号处理器)等得到普及。
关于这种媒体处理,MPEG(Moving Picture Experts Group:运动图像专家组)-2、MPEG-4、H.263、H.264等非常多的标准得到实际应用。因此,要求数字AV(Audio-Visual:音频-视频)设备能够应对多种标准的媒体处理。另外,各种媒体处理应用的复杂程度上升,具有图像尺寸、声音的声道数量等也增加的倾向,运算量将进一步增大。
因此,通过使用高性能的处理器来实现性能提高,该高性能的处理器通过设置专用于特定的运算的协处理器(co-processor)来大幅提高运算效率。
在具有协处理器的多处理器系统中,当在主处理器的处理和协处理器的处理之间不存在软件上的数据依存性以及使用的硬件资源没有竞争的情况下,通过同时执行它们的处理,能够进一步实现性能提高。
例如,在专利文献1中公开了这样的结构,通过设定执行模式,使主处理器和协处理器(FPU:Floating Point number processing Unit,浮点数处理单元)各自的命令执行动作变化。根据该专利文献1,将主处理器和协处理器(FPU)的命令执行模式(串行标量:serial scalar)统一,在执行浮动小数点命令(相当于协处理器)时,进行使主处理器的命令执行模式依据于协处理器(FPU)侧的控制。由此,能够同时进行主处理器和协处理器的处理。
现有技术文献
专利文献
专利文献1:日本特开平7-319694号公报
发明概要
发明要解决的问题
但是,在上述的技术中,虽然通过使主处理器侧的命令执行模式与协处理器侧的动作同步,从而能够使动作单纯化并提高性能,但是其另一方面,存在有关主处理器和协处理器的软件调试效率下降的问题。
发明内容
本发明的目的在于,提供能够高效地调试一个处理器的动作和另一个处理器的动作的多处理器系统及方法。
用于解决问题的手段
为了达到上述目的,本发明的多处理器系统,具有第1处理器、和接收来自该第1处理器的通知而开始处理的第2处理器,其特征在于,所述第1处理器具有:判别单元,判别是否设定了调试模式;确定单元,从命令串中逐次确定成为执行对象的命令;执行单元,在所确定的命令是处理委托命令的情况下,向所述第2处理器进行基于该处理委托的通知,在所确定的命令不是处理委托命令的情况下执行该所确定的命令;以及检测单元,检测接收到来自第1处理器的通知而开始的由第2处理器进行的处理已结束这一情况,在由所述判别单元判别为设定了调试模式的情况下,所述确定单元在确定处理委托命令时,中止以后的命令的确定,在检测到所述结束时重新开始命令的确定。
发明效果
根据上述结构,多处理器系统在由所述判别单元判别为设定了调试模式的情况下,在确定处理委托命令时,使以后的命令的确定停止,在检测到所述结束时重新开始命令的确定。因此,多处理器通过在确定处理委托命令时使以后的命令的确定停止,使得第2处理器处理的命令和确定处理委托命令时的以后的命令不会并行发行,因而能够高效地进行调试。
附图说明
图1是表示多处理器系统10的结构的图。
图2是表示发行命令决定处理的流程图。
图3是说明通常模式时的主处理器11和协处理器12的处理的图。
图4是说明调试模式时的主处理器11和协处理器12的处理的图。
图5是表示多处理器系统1000的结构的图。
图6是表示发行命令决定处理的流程图。
图7是说明第2调试模式时的主处理器1001和协处理器1002的处理的图。
图8是说明使用多处理器系统10的解码处理的图。
图9是说明使用多处理器系统10的编码处理的图。
具体实施方式
(作为本发明的基础的认识)
在上述专利文献1中公开的技术如上所述,通过使主处理器侧的命令执行模式与协处理器侧的动作同步,能够使动作单纯化并提高性能。
但是,在上述专利文献1公开的技术中,将导致有关主处理器及协处理器的软件调试效率下降。例如,在协处理器侧的软件错误地破坏了主处理器使用的存储器区域的一部分区域的情况下,由于主处理器和协处理器是同时并行执行的,因而难以区分成为故障原因的程序。因此,导致不明白这种故障是基于软件中主处理器执行的命令串的故障、还是基于协处理器执行的命令串的故障,即不明白是主处理器侧的软件具有的软件故障、还是协处理器侧的软件具有的软件故障。
因此,发明者通过进行认真研究,发现了能够高效地调试一个处理器的动作和另一个处理器的动作的多处理器系统,并完成了发明。
本发明的一个方式的多处理器系统,具有第1处理器、和接收来自该第1处理器的通知并执行处理的第2处理器,其特征在于,所述第1处理器具有:判别单元,判别是否设定了调试模式;确定单元,从命令串中逐次确定成为执行对象的命令;执行单元,在所确定的命令是处理委托命令的情况下,向所述第2处理器进行基于该处理委托的通知,在所确定的命令不是处理委托命令的情况下执行该所确定的命令;以及检测单元,对所述第2处理器已结束与所述通知相对应的处理这一情况进行检测,在由所述判别单元判别为设定了调试模式的情况下,所述确定单元在确定处理委托命令时,中止以后的命令的确定,在检测到所述结束时重新开始命令的确定。
1.第1实施方式
下面,参照附图说明本发明的第1实施方式。
1.1结构
图1是表示第1实施方式的多处理器系统10的结构的框图。
多处理器系统10如图1所示由主处理器11和协处理器12构成。在多处理器系统10是没有设定调试模式的状态即是通常模式的状态的情况下,主处理器11和协处理器12并行进行处理。在设定了调试模式的情况下不进行并行处理。
(1)关于主处理器11
主处理器11如图1所示由命令存储器101、命令取出(fetch)控制部102、命令组决定部103、命令缓冲器104、发行命令决定部105、寄存器文件106、运算器组107、数据存储器109、写回(write back)总线110、和调试模式判别部111构成。
(1-1)命令存储器101
命令存储器101是保存在主处理器11中执行的命令的存储器,保存由多个命令的组合构成的命令流。
(1-2)命令取出控制部102
命令取出控制部102保存程序计数器(PC),从命令存储器读出接下来执行的命令,并且将程序计数器值更新为下一个读出命令的值。
另外,命令取出控制部102从运算器组107接收对分支命令执行或者/以及相当于向发生例外的特殊处理矢量的分支处理请求,并进行读出程序计数器的控制。
(1-3)命令组决定部103
命令组决定部103从命令存储器101读出属于命令流的命令,进行解码处理,并写入命令缓冲器104中。
(1-4)命令缓冲器104
命令缓冲器104是接收属于命令流的命令并进行保存的缓冲器。
(1-5)调试模式判别部111
调试模式判别部111判别是否设定了调试模式。
具体地讲,调试模式判别部111保存调试模式指定寄存器,根据其值判别是否是调试模式,将其结果通知发行命令决定部105。其中,调试模式指定寄存器是利用软件设定的控制寄存器。
(1-6)发行命令决定部105
发行命令决定部105决定从命令缓冲器104按照每个机器周期而应该发行的命令,根据所决定的命令,使在主处理器11中执行命令以及向协处理器12进行处理委托。
发行命令决定部105如图1所示具有命令确定部201、命令执行部202和检测部203。
命令确定部201确定从命令缓冲器104按照每个机器周期而应该发行的命令。在由调试模式判别部111判定为设定了调试模式的情况下,在协处理器12正在执行处理时,命令确定部201中止对应该发行的命令的确定动作,在协处理器12的处理结束时重新开始对命令的确定。
在由命令确定部201确定的命令是向协处理器12的处理委托命令的情况下,命令执行部202向协处理器12进行基于该处理委托的通知(以后称为起动命令)。并且,在所确定的命令是向协处理器12的处理委托命令以外的命令的情况下,命令执行部202执行该命令,即使运算组进行基于该命令的处理。
检测部203在由调试模式判别部111判定为设定了调试模式的情况下,对协处理器12的处理结束进行检测。具体地讲,检测部203在接收从协处理器12输出的信号(例如忙碌(busy)信号)的期间,判定为协处理器12正在执行处理,在接收不到忙碌信号时判定为处理结束。
(1-7)寄存器文件106
寄存器文件106是寄存器组,保存通过执行在命令缓冲器104中保存的命令流而被设为读出及写入的对象的数据。
(1-8)运算器组107
运算器组107是包括加法器和乘法器等多个运算器107a、107b、107c的处理部,如图1所示也具有存储器存取部108。
其中,存储器存取部108是用于执行向数据存储器109进行存取的命令的运算器。
(1-9)写回总线110
写回总线110是用于将来自运算器组107的输出写回到寄存器文件106中的总线。
(1-10)数据存储器109
数据存储器109根据向该存储器进行存取的命令而被存取,并保存在执行程序时的数据。
(2)关于协处理器12
协处理器12如图1所示由命令处理部121、寄存器文件122、运算器组123、数据存储器125、和写回总线126构成。
(2-1)命令处理部121
命令处理部121通过从发行命令决定部105接收起动命令来起动并执行协处理器命令流。
命令处理部121存储相对于主处理器11的命令流而独立的多个协处理器命令流,来自主处理器11的起动命令包括用于指定执行哪个命令流的信息。例如,当在起动命令中具有3比特的指定信息的情况下,能够从8种协处理器命令流中指定1个协处理器命令流。
命令处理部121在执行被起动的协处理器命令流的过程中,向主处理器11的发行命令决定部105输出忙碌信号。在被起动的协处理器命令流的执行结束时,停止忙碌信号的输出。其中,协处理器命令流包括表示命令流的结尾的命令,在顺次执行的结果是到达表示结尾的命令时,视为协处理器的处理结束。
(2-2)寄存器文件122
寄存器文件122是寄存器组,保存通过执行协处理器命令流而被设为读出及写入的对象的数据。
(2-3)运算器组123
运算器组123是处理部,包括根据协处理器命令流而使用的加法器和乘法器等多个运算器。
另外,运算器组123如图1所示具有存储器存取部124。其中,存储器存取部124是用于执行向数据存储器进行存取的命令的运算器。
(2-4)写回总线126
写回总线126是用于将来自运算器组123的输出写回到寄存器文件122中的总线。
(2-5)数据存储器125
数据存储器125根据向该存储器进行存取的命令而被存取,并保存在执行程序时的数据。
1.2动作
在此,使用图2所示的流程图说明发行命令决定部105确定在某个周期发行的命令的处理。所谓确定在某个周期发行的命令的处理,是指从在命令缓冲器104内蓄积的命令中确定通过交给运算器组107而执行的命令的动作。
命令确定部201确认在命令缓冲器104中是否存在可发行的命令(步骤S5)。其中,在命令缓冲器104中对可发行的命令赋予了有效信号。不存在被赋予了有效信号的命令的情况,主要指由于分支或存储器存取延迟(access latency)状态等原因而使得命令供给跟不上的情况。另外,也存在虽然供给了命令,但是由于未能解决与先行命令的数据依存性而没有被赋予有效信号的情况。
当在命令缓冲器104中存在被赋予了有效信号的命令的情况下(步骤S5:是),命令确定部201确认是否设定了调试模式(步骤S10)。关于是否设定了调试模式,根据调试模式判别部111的判别结果进行判定。
在判定为设定了调试模式的情况下(步骤S10:是),检测部203确认协处理器是否正在执行中(步骤S15)。关于协处理器是否正在执行中,根据有无接收到从命令处理部121输出的忙碌信号来进行判定。
当协处理器正在执行中的情况下(步骤S15:是),命令确定部201决定为没有该周期的命令发行(步骤S20),使处理返回步骤S5。
当在命令缓冲器104中不存在被赋予了有效信号的命令的情况下(步骤S5:否),命令确定部201的动作转入步骤S20。
在判定为没有设定调试模式的情况下(步骤S10:否)以及判定为协处理器不在执行中的情况下(步骤S15:否),命令确定部201决定为有该周期的命令发行(步骤S25),使处理返回步骤S5。
1.3具体例
在此,对通常模式时和设定了调试模式时的主处理器11和协处理器12的处理进行说明。
首先,使用图3说明通常模式时的情况。
在通常模式的情况下,在主处理器11正在执行命令流的命令时(t5),根据处理委托命令向协处理器12进行通知(t10)。在协处理器12中,在接收到通知时动作被起动(t15)。并且,同时在主处理器11中,由于在通常模式时协处理器处理和主处理器处理没有依存关系,因而继续执行后续的处理(t20)。
然后,使用图4说明调试模式时的情况。
在设定了调试模式的情况下,在主处理器11正在执行命令流的命令时(t50),根据处理委托命令向协处理器12进行通知(t55)。在协处理器12中,在接收到通知时动作被起动(t60)。此时,协处理器12当在t60进行动作的期间中,向主处理器11输出忙碌信号。在主处理器11中,在接收到忙碌信号的期间中不执行处理。然后,协处理器12在动作结束时中止忙碌信号的输出(t65)。主处理器11在检测到协处理器12的动作结束时重新开始处理(t70)。
因此,在设定了调试模式的情况下,若协处理器的处理开始,则在主处理器11中不执行后续的处理,在协处理器进行动作的期间中保证排他动作。另外,在一系列的动作中,关于在调试模式时采用了主处理器11内的命令单位的并列性的动作、和采用了协处理器12内的命令单位的并列性的动作,基本上与程序员最终期望的动作(非调试模式动作)相同。
1.4总结
根据以上所述,本实施方式公开的多处理器系统10能够根据调试模式的设定进行如下切换:使协处理器12中的命令的执行与主处理器11并行进行、以及使协处理器12中的命令的执行与主处理器11的执行处于排他状态。
根据本实施方式,不需改变软件,即可容易进行带高性能的协处理器的处理器中的调试时的原因区分。
2.第2实施方式
下面,参照附图说明本发明的第2实施方式。
2.1结构
图5是表示第2实施方式的多处理器系统1000的结构的框图。
多处理器系统1000在第1实施方式所示的调试模式(以后称为“第1调试模式”)的功能基础上,还具有第2调试模式的功能。
下面进行有关第2调试模式的功能说明。并且,对于与第1实施方式所示的功能要素相同的功能要素标注相同的标号。
多处理器系统1000如图5所示由主处理器1001和协处理器1002构成。在多处理器系统1000是没有设定调试模式的状态即是通常模式的状态的情况下,与第1实施方式相同地,主处理器1001和协处理器1002并行进行处理。在设定了第1调试模式的情况下不进行并行处理。另外,在设定了第2调试模式的情况下,主处理器1001和协处理器1002进行并行处理,但是在协处理器1002中对于不同的命令流即基于不同的处理委托通知的处理,不并行进行处理。
(1)关于主处理器1001
主处理器1001如图5所示由命令存储器101、命令取出控制部102、命令组决定部103、命令缓冲器104、发行命令决定部1105、寄存器文件106、运算器组107、数据存储器109、写回总线110、和调试模式判别部1111构成。
下面,对发行命令决定部1105和调试模式判别部1111的功能进行说明。
(1-1)调试模式判别部1111
调试模式判别部1111是判别是否设定了调试模式的单元。并且,在设定了调试模式的情况下,判别是第1调试模式还是第2调试模式。
具体地讲,调试模式判别部1111保存调试模式指定寄存器,根据其值判别是设定了第1调试模式、还是设定了第2调试模式、还是没有设定任何调试模式,将其结果通知发行命令决定部105。其中,调试模式指定寄存器是利用软件设定的控制寄存器。
(1-2)发行命令决定部1105
发行命令决定部1105决定从命令缓冲器104按照每个机器周期而应该发行的命令,根据所决定的命令,使在主处理器1001中执行命令以及向协处理器12进行处理委托。
发行命令决定部1105如图5所示具有命令确定部1201、命令执行部1202和检测部1203。
命令确定部1201是确定从命令缓冲器104按照每个机器周期而应该发行的命令的单元。在由调试模式判别部1111判定为设定了第1调试模式的情况下,命令确定部1201进行与上述第1实施方式相同的动作。
在由调试模式判别部1111判定为设定了第2调试模式的情况下,在接下来应该发行的命令是向协处理器的处理委托命令、并且在协处理器1201正在执行处理时,命令确定部1201中止对应该发行的命令的确定动作,在协处理器12的处理结束时重新开始对命令的确定。
在由命令确定部1201确定的命令是向协处理器12的处理委托命令的情况下,命令执行部1202向协处理器1002进行起动命令的通知。并且,在所确定的命令是向协处理器12的处理委托命令以外的命令的情况下,命令执行部202执行该命令,即使运算组进行基于该命令的处理。
检测部1203是在由调试模式判别部111判定为设定了第1调试模式或者设定了第2调试模式的情况下,对协处理器12的处理结束进行检测的单元。具体地讲,检测部203在接收从协处理器12输出的信号(例如忙碌信号)的期间,判定为协处理器12正在执行处理,在接收不到忙碌信号时判定为处理结束。
2.2动作
在此,使用图6所示的流程图说明发行命令决定部1105确定在某个周期发行的命令的处理。所谓确定在某个周期发行的命令的处理,是指从在命令缓冲器104内蓄积的命令中确定通过交给运算器组107而执行的命令的动作。
命令确定部1201确认在命令缓冲器104中是否存在可发行的命令(步骤S100)。其中,在命令缓冲器104中对可发行的命令赋予了有效信号。不存在被赋予了有效信号的命令的情况,主要指由于分支或存储器存取延迟状态等原因而使得命令供给跟不上的情况。另外,也存在虽然供给了命令,但是由于未能解决与先行命令的数据依存性而没有被赋予有效信号的情况。
当在命令缓冲器104中存在被赋予了有效信号的命令的情况下(步骤S100:是),命令确定部1201确认是否进行了第1调试模式设定(步骤S105)。关于是否设定了第1调试模式,根据调试模式判别部1111的判别结果进行判定。
在判定为设定了第1调试模式的情况下(步骤S105:是),检测部1203确认协处理器是否正在执行中(步骤S110)。关于协处理器是否正在执行中,根据有无接收到从命令处理部121输出的忙碌信号来进行判定。
当协处理器正在执行中的情况下(步骤S110:是),命令确定部1201决定为没有该周期的命令发行(步骤S130),使处理返回步骤S100。
在判定为协处理器不在执行中的情况下(步骤S110:否),命令确定部1201决定为有该周期的命令发行(步骤S135),使处理返回步骤S100。
当在命令缓冲器104中不存在被赋予了有效信号的命令的情况下(步骤S100:否),命令确定部1201的动作转入步骤S135。
在判定为没有设定第1调试模式的情况下(步骤S105:否),命令确定部1201确认是否设定了第2调试模式(步骤S120)。关于是否设定了第2调试模式,根据调试模式判别部1111的判别结果进行判定。
在判定为设定了第2调试模式的情况下(步骤S115:是),命令确定部1201判定应该发行的命令是否是向协处理器1002的处理委托命令(步骤S120)。
在由命令确定部1201判定为应该发行的命令是向协处理器1002的处理委托命令(步骤S120:是),检测部1203确认协处理器是否正在执行中(步骤S125)。关于协处理器是否正在执行中,根据有无接收到从命令处理部121输出的忙碌信号来进行判定。
当协处理器正在执行中的情况下(步骤S125:是),命令确定部1201决定为没有该周期的命令发行(步骤S130),使处理返回步骤S100。
在判定为协处理器不在执行中的情况下(步骤S125:否),命令确定部1201决定为有该周期的命令发行(步骤S135),使处理返回步骤S100。
2.3具体例
在此,使用图7来说明设定了第2调试模式时的主处理器11和协处理器12的处理。另外,关于通常模式以及设定了第1调试模式的情况,与在第1实施方式中示出的图3、4相同,因而省略各自的说明。
在设定了第2调试模式的情况下,在主处理器1001正在执行命令流的命令的过程中(t100),根据处理委托命令向协处理器1002进行通知(t1055)。在这种情况下,由于协处理器1002没有执行,因而进行通知。
在协处理器12中,在接收到通知时动作被起动(t110)。此时,协处理器1002当在t110进行动作的期间中,向主处理器1001输出忙碌信号。
即使是协处理器1002正在执行中(t110),但在应该发行的命令不是处理委托命令的情况下,主处理器1001仍继续进行处理(t115)。并且,在应该发行的命令是处理委托命令、并且接收到忙碌信号的期间中,主处理器1001不执行处理(t120)。然后,协处理器1002在动作结束时中止忙碌信号的输出(t125)。主处理器1001在检测到协处理器12的动作结束时重新开始处理,即发行处理委托命令(t130)。
然后,在协处理器1002中,在接收到通知时动作被起动(t135)。即使是协处理器1002正在执行中(t135),但在应该发行的命令不是处理委托命令的情况下,主处理器1001仍继续进行处理(t140)。
3.第3实施方式
在此,关于本发明的第3实施方式,说明采用了在第1实施方式中示出的多处理器的适用例。
图8所示的多处理器系统1501是进行面向数字AV设备的系统LSI影像的解码处理的系统。
例如,为了对使用H.264等标准被压缩的影像信号进行解码,需要进行比特流的分析、被实施可变长编码后的信号的可变长解码处理(VLD)、逆量化及逆频率变换(IQT)、运动补偿(MC)、图像的重建(Recon)、解块滤波处理(DBF)。
其中,逆量化及逆频率变换(IQT)、运动补偿(MC)、图像的重建(Recon)、解块滤波处理(DBF)(参照处理组1505)适合于能够进行运用了数据并列性的处理、并且使用特殊的运算器的协处理器处理,因而通过将这些处理作为协处理器1503的处理来执行,能够实现高性能的解码处理。
另外,例如通过以宏块单位来组装流水线(pipe line),并且并列进行在主处理器1502中的可变长解码处理(VLD)处理1504和在协处理器中的处理组1505,能够进一步实现高性能。
在这种情况下,通过使用在第1实施方式中叙述的调试模式功能,能够实现高效的调试。
图9所示的多处理器系统1601是进行面向数字AV设备的系统LSI影像的编码处理的系统。
宏块的编码处理通常包括计算相对于编码对象的图像数据的预测误差的运动估计处理、对预测误差进行频率变换及量化的量化处理、对量化DCT系数及运动矢量进行可变长编码的编码处理、有关参照图像的生成的处理、有关运动补偿的处理。
其中,计算相对于编码对象的图像数据的预测误差的运动估计处理、对预测误差进行频率变换及量化的量化处理、有关参照图像的生成的处理、运动补偿(参照处理组1605)适合于能够进行运用了数据并列性的处理、并且使用特殊的运算器的协处理器处理,因而通过将这些处理作为协处理器1603的处理来执行,能够实现高性能的解码处理。
另外,例如通过以宏块单位来组装流水线,并且并列进行在主处理器1602中对量化DCT系数及运动矢量进行可变长编码的编码处理1604和在协处理器1603中的处理组1605,能够进一步实现高性能。
在这种情况下,通过使用在第1实施方式中叙述的调试模式功能,能够实现高效的调试。
4.变形例
以上根据各实施方式进行了说明,但本发明不限于上述的各实施方式。例如,可以考虑如下所述的变形例。
(1)在上述的各实施方式中,主处理器在判定协处理器是否正在执行中时使用了从协处理器在执行处理时输出的忙碌信号,但不限于此。
也可以是,若协处理器结束被起动的协处理器命令流的执行,则将协处理器的处理结束的情况通知发行命令决定部105,主处理器通过接收该通知来检测协处理器的处理结束。
也可以是,将协处理器进行的存储器存取的结束视为该协处理器的处理结束。例如,在进行了在协处理器的命令流内使用了存储器存取的、针对数据存储器的存储器存取的情况下,向存储器的读出或者写入存取的结束有时相对于处理器内的命令执行而延迟。在这种情况下,通过将存储器存取的结束设为协处理器的处理结束,能够检测出例如基于非有意的存储器存取的地址一致的故障。
(2)在第1实施方式中,也可以是,即使是非调试模式动作时,也对协处理器起动命令的后续的主处理器命令进行制约,使其不与协处理器起动命令同时发行。由此,使用了调试模式时的主处理器内的命令单位的并列性的动作、和使用了协处理器内的命令单位的并列性的动作,能够与程序员最终期望的动作(非调试模式动作)完全一致。
(3)在上述第2实施方式中,也可以是,多处理器系统1000是允许执行out-of-order的系统。
在这种情况下,由于允许按照与程序计数器不同的顺序执行命令,因而即使是接下来应该通知的处理委托命令的后续命令,在对该接下来应该通知的处理委托命令没有依存性的情况下,能够先执行该后续命令。
(4)也可以是,预先将记述了在上述实施方式中说明的方法的步骤的程序存储在存储器中,CPU(Central Processing Unit)等从存储器中读出程序,并执行所读出的程序,由此实现上述的方法。
另外,也可以是,将记述了该方法的步骤的程序存储在记录介质中进行分发。
(5)上述实施方式中的多处理器系统的各构成要素利用硬件资源(处理器与存储器中的程序的协同)实现。
(6)也可以将上述实施方式及变形例进行组合。
5.补充
(1)本发明的一个方式的多处理器系统,具有第1处理器、和接收来自该第1处理器的通知并执行处理的第2处理器,其特征在于,所述第1处理器具有:判别单元,判别是否设定了调试模式;确定单元,从命令串中逐次确定成为执行对象的命令;执行单元,在所确定的命令是处理委托命令的情况下,向所述第2处理器进行基于该处理委托的通知,在所确定的命令不是处理委托命令的情况下执行该所确定的命令;以及检测单元,对所述第2处理器已结束与所述通知相对应的处理这一情况进行检测,在由所述判别单元判别为设定了调试模式的情况下,所述确定单元在确定处理委托命令时,中止以后的命令的确定,在检测到所述结束时重新开始命令的确定。
根据这种结构,多处理器系统在由所述判别单元判别为设定了调试模式的情况下,在确定处理委托命令时,使以后的命令的确定停止,在检测到所述结束时重新开始命令的确定。由此,多处理器通过在确定处理委托命令时使以后的命令的确定停止,不并行发行由第2处理器进行处理的命令、和在确定处理委托命令后的以后的命令,因而能够高效地进行调试。
(2)在此也可以是,所述第2处理器在执行与所述通知相对应的处理的过程中,向所述第1处理器输出表示正在执行该处理的信号,在从所述第2处理器输出所述信号的期间中,所述检测单元判定为所述第2处理器正在执行与所述通知相对应的处理,当不再输出该信号时,判定为与所述通知相对应的处理结束。
根据这种结构,在多处理器系统中,第1处理器能够根据有无从第2处理器输出的信号,检测第2处理器的动作的结束。
(3)在此也可以是,与所述通知相对应的处理结束,是指用于使所述第2处理器执行与所述通知相对应的处理的命令流中所包含的所有存储器存取命令的向存储器的存取已结束。
根据这种结构,多处理器系统将存储器存取的结束作为第2处理器的处理结束,因而能够检测例如基于非有意的存储器存取的地址一致的故障。
(4)在此也可以是,所述判别单元还判别是否取代所述调试模式而设定了所述调试模式之外的其他调试模式,在由所述判别单元判别为设定了所述其他调试模式的情况下,在所述确定单元确定所述处理委托命令时,在由所述检测单元检测到所述结束之前的期间中,所述执行单元执行在针对所述第2处理器的下一个处理委托命令出现之前所存在的命令,或者执行在所述下一个处理委托命令出现之前所存在的命令以及位于所述下一个处理委托命令的后续的、而且不依存于所述下一个处理委托命令的命令,在由所述检测单元检测到所述结束时,对所述第2处理器进行基于该下一个处理委托命令的通知。
根据这种结构,多处理器系统在设定了其他调试模式的情况下,在第2处理器中不会并行执行针对基于不同的处理委托命令的通知的处理。由此,当在第2处理器中执行针对基于不同的处理委托命令的通知的处理的并行处理以前,进行第1处理器和第2处理器的并行处理的调试,由此能够高效地排除故障。
(5)在此也可以是,所述第1处理器还具有控制单元,该控制单元进行如下控制:在由所述判别单元判别为没有设定调试模式的情况下,在所述确定单元确定处理委托命令时使以后的命令的确定停止,在检测到所述结束时重新开始命令的确定。
根据这种结构,多处理器系统在没有设定调试模式的情况下,在确定处理委托命令时使以后的命令的确定停止,在检测到所述结束时重新开始命令的确定。由此,采用了调试模式时的主处理器内的命令单位的并列性的动作、和采用了协处理器内的命令单位的并列性的动作,能够与非调试模式的动作完全一致。
(6)在此也可以是,在所述第1处理器及所述第2处理器中分别执行的命令是用于进行图像的解码处理的命令,所述多处理器系统被设于进行图像的解码处理的图像处理装置中。
根据这种结构,多处理器系统能够高效地进行解码处理的调试。
(8)在此也可以是,在所述第1处理器及所述第2处理器中分别执行的命令是用于进行图像的编码处理的命令,所述多处理器系统被设于进行图像的编码处理的图像处理装置中。
根据这种结构,多处理器系统能够高效地进行编码处理的调试。
产业上的可利用性
本发明的多处理器系统具有灵活实现高性能的运算处理的功能,因而能够适用于DVD录制器或数字TV等进行影像或声音的媒体处理的系统LSI等。
标号说明
10、1000多处理器系统;11、1001主处理器;12、1002协处理器;101命令存储器;102命令取出控制部;103命令组决定部;104命令缓冲器;105、1105发行命令决定部;106寄存器文件;107运算器组;108存储器存取部;109数据存储器;110写回总线;111、1111调试模式判别部;121命令处理部;122寄存器文件;123运算器组;124存储器存取部;125数据存储器;126写回总线;201、1201命令确定部;202、1202命令执行部;203、1203检测部。
Claims (7)
1.一种多处理器系统,具有第1处理器、和接收来自该第1处理器的通知而开始处理的第2处理器,其特征在于,
所述第1处理器具有:
判别单元,判别是否设定了调试模式;
确定单元,从命令串中逐次确定成为执行对象的命令;
执行单元,在所确定的命令是处理委托命令的情况下,向所述第2处理器进行基于该处理委托的通知,在所确定的命令不是处理委托命令的情况下执行该所确定的命令;以及
检测单元,检测接收到来自第1处理器的通知而开始的由第2处理器进行的处理已结束这一情况,
在由所述判别单元判别为设定了调试模式的情况下,所述确定单元在确定处理委托命令时,中止以后的命令的确定,在检测到所述结束时重新开始命令的确定。
2.根据权利要求1所述的多处理器系统,其特征在于,
在执行与所述通知相对应的处理的过程中,所述第2处理器向所述第1处理器输出表示正在执行该处理的信号,
在从所述第2处理器输出所述信号的期间中,所述检测单元判定为所述第2处理器正在执行与所述通知相对应的处理,当不再输出该信号时,判定为与所述通知相对应的处理结束。
3.根据权利要求2所述的多处理器系统,其特征在于,
与所述通知相对应的处理结束,是指用于使所述第2处理器执行与所述通知相对应的处理的命令流中所包含的所有存储器存取命令的向存储器的存取已结束。
4.根据权利要求1所述的多处理器系统,其特征在于,
所述判别单元还判别是否取代所述调试模式而设定了所述调试模式之外的其他调试模式,
在由所述判别单元判别为设定了所述其他调试模式的情况下,在所述确定单元确定所述处理委托命令时,在由所述检测单元检测到所述结束之前的期间中,
所述执行单元,
执行在针对所述第2处理器的下一个处理委托命令出现之前所存在的、而且不依存于所述处理委托命令的命令,或者
执行在针对所述第2处理器的下一个处理委托命令出现之前所存在的、而且不依存于所述处理委托命令的命令,以及位于所述下一个处理委托命令的后续的、而且不依存于所述下一个处理委托命令的命令,
在由所述检测单元检测到所述结束时,对所述第2处理器进行基于该下一个处理委托命令的通知。
5.根据权利要求1所述的多处理器系统,其特征在于,
在所述第1处理器及所述第2处理器中分别执行的命令是用于进行图像的解码处理的命令,
所述多处理器系统被设于进行图像的解码处理的图像处理装置中。
6.根据权利要求1所述的多处理器系统,其特征在于,
在所述第1处理器及所述第2处理器中分别执行的命令是用于进行图像的编码处理的命令,
所述多处理器系统被设于进行图像的编码处理的图像处理装置中。
7.一种在多处理器系统中使用的处理方法,该多处理器系统具有第1处理器、和接收来自该第1处理器的通知而开始处理的第2处理器,该第1处理器具有判别单元、确定单元、执行单元和检测单元,其特征在于,
所述处理方法包括:
判别步骤,由所述判别单元判别是否设定了调试模式;
确定步骤,由所述确定单元从命令串中逐次确定成为执行对象的命令;
执行步骤,在所确定的命令是处理委托命令的情况下,所述执行单元向所述第2处理器进行基于该处理委托的通知,在所确定的命令不是处理委托命令的情况下执行该所确定的命令;以及
检测步骤,由所述检测单元检测接收到来自第1处理器的通知而开始的由第2处理器进行的处理已结束这一情况,
在所述确定步骤中,在通过所述判别步骤判别为设定了调试模式的情况下,在确定处理委托命令时,停止以后的命令的确定,在检测到所述结束时重新开始命令的确定。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-158123 | 2011-07-19 | ||
JP2011158123 | 2011-07-19 | ||
PCT/JP2012/003704 WO2013011620A1 (ja) | 2011-07-19 | 2012-06-06 | マルチプロセッサシステム |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103718158A CN103718158A (zh) | 2014-04-09 |
CN103718158B true CN103718158B (zh) | 2016-10-19 |
Family
ID=47557824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280035369.5A Expired - Fee Related CN103718158B (zh) | 2011-07-19 | 2012-06-06 | 多处理器系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9317287B2 (zh) |
JP (1) | JPWO2013011620A1 (zh) |
CN (1) | CN103718158B (zh) |
WO (1) | WO2013011620A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10776115B2 (en) * | 2015-09-19 | 2020-09-15 | Microsoft Technology Licensing, Llc | Debug support for block-based processor |
CN116149603A (zh) * | 2021-11-23 | 2023-05-23 | 广东跃昉科技有限公司 | 运算指令处理方法及系统、主处理器和协处理器 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231584A (zh) * | 2007-01-23 | 2008-07-30 | 矽统科技股份有限公司 | 处理系统以及用以处理该处理系统中指令的相关方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07113902B2 (ja) | 1987-10-20 | 1995-12-06 | 富士通株式会社 | 並列処理デバッグ制御方法 |
JPH03218539A (ja) | 1989-11-27 | 1991-09-26 | Hitachi Ltd | 並列計算機システムにおけるデバッグ方法 |
US5361352A (en) | 1989-11-27 | 1994-11-01 | Hitachi, Ltd. | Method for debugging in a parallel computer system and system for the same |
JPH0659908A (ja) * | 1992-08-11 | 1994-03-04 | Toshiba Corp | プログラム実行装置 |
JP3481301B2 (ja) | 1994-05-27 | 2003-12-22 | 富士通株式会社 | プロセッサ制御装置 |
JPH11232135A (ja) | 1998-02-10 | 1999-08-27 | Mitsubishi Electric Corp | 半導体装置 |
JP4717492B2 (ja) * | 2005-04-12 | 2011-07-06 | 富士通株式会社 | マルチコアモデルシミュレータ |
JP4425177B2 (ja) | 2005-05-20 | 2010-03-03 | 株式会社ソニー・コンピュータエンタテインメント | グラフィックプロセッサ、情報処理装置 |
JP4633553B2 (ja) * | 2005-06-22 | 2011-02-16 | ルネサスエレクトロニクス株式会社 | デバッグシステム、デバッグ方法およびプログラム |
JP5891758B2 (ja) * | 2011-12-06 | 2016-03-23 | サンケン電気株式会社 | 電子装置 |
-
2012
- 2012-06-06 JP JP2013524581A patent/JPWO2013011620A1/ja not_active Withdrawn
- 2012-06-06 US US14/232,389 patent/US9317287B2/en not_active Expired - Fee Related
- 2012-06-06 CN CN201280035369.5A patent/CN103718158B/zh not_active Expired - Fee Related
- 2012-06-06 WO PCT/JP2012/003704 patent/WO2013011620A1/ja active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101231584A (zh) * | 2007-01-23 | 2008-07-30 | 矽统科技股份有限公司 | 处理系统以及用以处理该处理系统中指令的相关方法 |
Also Published As
Publication number | Publication date |
---|---|
US20140136821A1 (en) | 2014-05-15 |
WO2013011620A1 (ja) | 2013-01-24 |
CN103718158A (zh) | 2014-04-09 |
US9317287B2 (en) | 2016-04-19 |
JPWO2013011620A1 (ja) | 2015-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI468937B (zh) | 產生分支記錄的方法與系統及儲存分支記錄的處理器 | |
US8881157B2 (en) | Allocating threads to cores based on threads falling behind thread completion target deadline | |
US8412981B2 (en) | Core sparing on multi-core platforms | |
KR101594090B1 (ko) | 공유 메모리에 대한 액세스들의 동기화를 완화하기 위한 프로세서들, 방법들 및 시스템들 | |
US8291431B2 (en) | Dependent instruction thread scheduling | |
US8527812B2 (en) | Information processing device | |
US20060184837A1 (en) | Method, apparatus, and computer program product in a processor for balancing hardware trace collection among different hardware trace facilities | |
TWI497278B (zh) | 微處理器、死結或活結狀態解除方法以及其電腦程式產品 | |
KR101890021B1 (ko) | 행 검출을 위한 패턴 검출기 | |
US20130152096A1 (en) | Apparatus and method for dynamically controlling preemption section in operating system | |
US20100269118A1 (en) | Speculative popcount data creation | |
US20140344623A1 (en) | Apparatus and method for detecting fault of processor | |
TWI439925B (zh) | 內嵌式系統及其執行緒與緩衝區管理方法 | |
US10810039B2 (en) | Monitoring utilization of transactional processing resource | |
CN103718158B (zh) | 多处理器系统 | |
US10545763B2 (en) | Detecting data dependencies of instructions associated with threads in a simultaneous multithreading scheme | |
US20120059997A1 (en) | Apparatus and method for detecting data race | |
WO2018076979A1 (zh) | 一种指令间数据依赖的检测方法和装置 | |
CN105378652A (zh) | 线程共享资源分配方法及装置 | |
CN116483743A (zh) | 数据高速缓存预取装置、方法及处理器 | |
WO2016092345A1 (en) | Logic analyzer for detecting hangs | |
WO2021037124A1 (zh) | 一种任务处理的方法以及任务处理装置 | |
JP2014182478A (ja) | 性能プロファイリング装置及び性能プロファイリング方法 | |
Orosa et al. | Flexsig: Implementing flexible hardware signatures | |
CN113168888A (zh) | 基于fpga的重测序分析方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C41 | Transfer of patent application or patent right or utility model | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20160411 Address after: Osaka Japan Applicant after: PANASONIC INTELLECTUAL PROPERTY MANAGEMENT Co.,Ltd. Address before: Osaka Japan Applicant before: Matsushita Electric Industrial Co.,Ltd. |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161019 Termination date: 20200606 |