专利名称:多处理机系统的利记博彩app
技术领域:
本发明涉及可处理图像数据等的大容量数据的由多个处理机组成的多处理机系统。
背景技术:
通常的处理机,因为是以处理容量比较小的数据为前提,寄存器一般是使用昂贵的小容量的多端口存储器。因此,如使用多个这种通常的处理机构筑多处理机系统,则各处理机之间必需进行频繁的数据交换,各处理机的控制变得很复杂。
现有的多处理机系统的代表性系统有共享存储型并行处理机系统和向量处理机系统。
共享存储型并行处理机系统,因为运算器用的处理机是自发地取得数据,程序很难对各处理机的处理进行最优调度。比如,在重叠描绘图形的场合,因为重复小处理单位,结果数据容量很大,因此在同一系统中,各处理机变成自发的多次取得数据进行重复地处理,事实上不可能优化各处理机的处理。
另外,在向量处理机系统中,主计算机控制向量处理机的处理。但是,在现有的系统中,主计算机不对向量处理机的网络访问及存储器访问进行调度,而是由编译器进行调度。比如,在同一系统中进行图形的重叠描绘的场合,数据的依赖关系全部都必须在编译器上检验而进行调度,需要编译处理时间。
发明内容
根据本发明的一实施例的多处理机系统的构成包括利用存放于存储器中的数据执行任务的一个以上的运算处理器和控制上述运算处理器的任务的执行的控制处理器,上述控制处理器的构成包括检验执行任务之际数据之间的依赖关系的检验单元和根据上述检验的依赖关系,访问上述存储器,将数据从上述存储器传送到上述运算处理器以及进行上述运算处理器中的运算调度的调度单元。
图1为示出本发明的多处理机系统的一实施例的概略构成的框图。
图2为本实施例的处理内容的说明图。
图3为示出Blend指令的一例的示图。
图4为图3的Blend指令变换为中间指令的图。
图5为控制处理器的动作说明图。
图6为示出控制处理器的动作的流程图。
图7为示出控制处理器6的进行的调度管理的一例的图。
图8为示出本实施例的调度方法的一例的流程图。
图9为示出调度管理单元的内部构成的一例的框图。
图10为示出块数据的有效利用率和传送速度提高率的曲线图。
图11为示出图像处理专用的本发明的多处理机系统的一例的框图。
具体实施例方式
下面参照附图对本发明的多处理机系统的一优选实施例予以具体说明。
图1为示出本发明的多处理机系统的一实施例的概略构成的框图。图1的多处理机系统的构成包括由多个存储体构成的可以以存储体为单位进行访问的存储器1;具有利用以存储体为单位读出的块数据进行规定的运算处理的多个运算处理器2的运算处理单元(LDALU)3;控制在多个运算处理器2和存储器1之间收发数据的纵横单元(x-bar)4;控制纵横单元4的纵横控制单元5;控制运算处理单元3的控制处理器(LDPCU)6;以及和外存储器7进行数据收发的外部接口单元8。
存储器1,比如,是利用有多个存储体组成的单端口存储器构成的。运算处理单元3包含利用以存储体单位读出的块数据执行任务的多个运算处理器2和对应于各运算处理器2而设置的SRAM 9。
存储器1,运算处理单元3及外部接口单元8,通过缓存10与纵横单元4进行数据收发。
控制处理器6的构成包括检验各任务使用的块数据之间的依赖关系的依赖关系检验单元21;掌握运算处理器2及纵横单元4的处理状况等的资源检验单元22;从存储器1向运算处理器2传送数据、访问存储器1及进行上述运算处理器2中的数据处理的调度的调度管理单元23;控制在存储器1和运算处理器2之间的DMA传送的DMA控制器24;以及存放由程序给出的指令集的指令存放单元25。
图2为本实施例的处理内容的说明图。如图所示,在本实施例中,比如,假设以两幅图像合成(混合)的任务的多次反复处理作为一个线程,并行执行相互没有依赖关系的多个线程。此处,假设在生成同一或不同的合成图像之际共用的任务之间具有依赖关系,其他的任务没有依赖关系。
在图2中,带有符号0~12的各块表示图像数据,在各块的上侧记载的addrXX表示对应的图像数据的存放地址。比如,addr0a表示存储器1的地址0a。
图2的线程0,在由标识号P0的运算处理器2将存放于存储器1的地址0a中的图像0和存放于地址1a中的图像1合成的图像8存放于地址0c中的同时,由标识号P2的运算处理器2将存放于存储器1的地址2a中的图像2和存放于地址3a中的图像3合成的图像9存放于地址2c中,之后,由标识号P0的运算处理器2对图像8,9合成的图像12进行存放于地址0d中的处理。
另外,图2的线程1,在由标识号P1的运算处理器2将存放于存储器1的地址3c中的图像4和存放于地址0b中的图像5合成的图像10存放于地址1b中的同时,由运算处理器P3将存放于地址1d中的图像6和存放于地址2b中的图像7合成的图像11放于地址3b中,之后,由标识号P1的运算处理器2对图像10,11合成的图像13进行存放于地址1c中的处理。
在本实施例中,准备了Blend指令作为将两幅图像合成用的专用指令。Blend指令表述为Blend(p,x,y,z)。p是运算处理器2的标识号,y是从存储器1读出的第1输入块数据的地址,z是从存储器1读出的第2输入块数据的地址,x是写入存储器1的输出块数据的地址。就是说,Blend(p,x,y,z)表示由标识号p的运算处理器2将存储器1的地址y,z的第1及第2输入块数据合成的块数据存放于地址x中。
图2的线程0,1,如图3所示,由6个Blend指令表述。图3的线程0的Blend(P0,0c,0a,1a)对应于生成图2的图像8的处理,Blend(P2,2c,2a,3a)对应于生成图像9的处理,而Blend(P0,0d,0c,2c)对应于生成图像12的处理。
另外,线程1的Blend(P1,1b,3c,0b)对应于生成图2的图像10的处理,Blend(p3,3b,1d,2b)对应于生成图像11的处理,而Blend(P1,1c,1b,3b)对应于生成图像13的处理。
图3所示的指令集,存放于图1所示的指令存放单元25中。控制处理器6或图中未示出的比较器及解释器将图3所示的指令集变换为如图4所示的中间指令。变换后的中间指令,可存放于指令存放单元25,也可另外设置用于存放中间指令的存放单元。
如图所示,一个Blend指令变换为3个中间指令,并且由图中未示出的汇编器变换为机械语言而由控制处理器6执行。
比如,以Blend(P0,0c,0a,1a)为例,首先,利用中间指令DMA(POSPM,0a)将存储器1的地址0a的块数据DMA传送到与识别号P0的运算处理器2相对应的SRAM 9。接着,按照中间指令DMA(POSPM,1a)将存储器1的地址1a的块数据经DMA传送到与识别号P0的运算处理器2相对应的SRAM 9。接着,按照中间指令kick(P0,0c,POSPM,Blend),由识别号P0的运算处理器2将存放于SRAM 9中的两个块数据合成,合成的块数据存放于存储器1的地址0c中。kick指令的最后自变量Blend是表示是否有Blend处理的指令集的地址的标志。
在图4的中间指令集的右侧记述的数字0A,0B等是识别中间指令的序号。
图5为控制处理器6的动作说明图,图5的右侧方向表示时间轴。图5说明的是图4所示的处理线程0,1的场合的控制处理器6的动作。
首先,控制处理器6,顺序处理线程0的中间指令0A,0B,0C。此时,控制处理器6,指示对设置于调度管理单元23内的任务队列进行DMA传送,立刻进行下一个中间指令的处理。
这样,控制处理器6,不是对各个中间指令一个个进行DMA传送,而只是对DMA传送指示进行蓄积于任务队列中的处理。
在线程0的中间指令0C的处理结束阶段,比如,如果从图中未示出的定时器有线程的切换中断信号输入到调度管理单元23,则控制处理器6就顺序处理线程0顺序1的中间指令1A,1B,1C代替线程0。并且在此处,控制处理器6还指示对设置于调度管理单元23内的任务队列进行DMA传送,立刻进行下一个中间指令的处理。
在线程1的中间指令1C的处理结束阶段,比如,如果从图中未示出的定时器有调度中断信号输入到调度管理单元23,则调度管理单元23进行关于执行蓄积于任务队列中的中间指令的处理的任务调度,按照调度的顺序,控制处理器6,控制DMA控制器24及运算处理器2执行各任务。
线程的切换中断信号及调度中断信号,比如,是从微处理器系统内的图中未示出的定时器及计数器等具有时间计测功能的电路周期地输入。或者也可以从微处理器系统的外部电路输入这些中断信号。
在图5中示出的是,在将线程0,1的各中间指令每3个为一组执行时,输入调度中断信号,表示每当线程0或1的各中间指令每3个为一组执行时输入线程的切换中断信号的示例,但这些中断信号的输入定时也可根据实际装置形式而进行种种改变。
如果将图5的动作按照时间时序总结,就成为图6的流程图。首先,控制处理器6,选择线程顺序执行各中间指令(步骤S1),指示对调度管理单元23的任务队列进行DMA传送(步骤S2)。
接着,控制处理器6,判断是否有线程的切换中断信号输入到调度管理单元23(步骤S3),并且反复执行步骤S1,S2的处理一直到此中断信号输入为止。
如有线程的切换中断信号输入,控制处理器6在可执行的线程间进行仲裁,选择一个线程执行(步骤S4)。在图5中,因为只有两个线程,在线程0之后执行线程1。
其后,如有调度中断信号输入(步骤S5),调度管理单元23就执行调度处理。如输入调度中断,首先,调度管理单元23,在读出进入任务队列的任务(步骤S6)后,在按照地址检验所读出的任务的数据的依赖关系的同时,检验资源冲突(纵横单元4及存储器1的端口号等),以效率最高的方式对任务进行调度(步骤S7)。这种调度,因为可以作为控制处理器6的软件安装,可根据安装方式而有种种改变。
接着,控制处理器6,按照调度的顺序,控制DMA控制器24及运算处理器2以执行实际上可执行的任务(步骤S8)。
图7为示出控制处理器6的进行的调度管理的一例的示图。如图7(a)所示,假设在任务队列中蓄积有对标识号P0的运算处理器2的任务E0,E1,E0,E2和对标识号P1的运算处理器2的任务E0,E0,E2,E2。不特别关心这些任务的具体内容,下面以执行上述的Blend指令的任务为例进行说明。
在不进行任何调度管理的场合,控制处理器6,因为是从先进入任务队列的任务顺序执行,无论是标识号P0,P1的运算处理器2中的任何一个首先都是执行任务E0。但是,任务E0是执行同一Blend指令,因为在执行该指令之际是利用存放于存储器1中的同一数据,标识号P0,P1的运算处理器2不能同时进行处理。因此,如图7(b)所示,标识号P1的运算处理器2必须等待标识号P0的运算处理器2结束任务E0的处理。所以,标识号P1的运算处理器2需要花费的时间是一直到所有的处理结束的时间。
另一方面,本实施例中的调度管理单元23,为了使标识号P0,P1的运算处理器2可以高效率地执行任务,对蓄积于任务队列中的任务进行调度。图7(c)示出使标识号P1的运算处理器2先执行任务E2的调度示例。因为任务E0,E2分别利用另外的数据执行Blend指令,不同的运算处理器2可同时执行各任务。
这样,在本实施例中,因为是由控制各运算处理器2的任务的控制处理器6进行调度以使多个运算处理器2并行执行任务,所以各运算处理器2可高效率地处理任务。就是说,根据本实施例,可以对各运算处理器2中的处理进行有效的调度。
在上述实施例中,是针对执行Blend指令的任务予以说明的,执行的指令不限定于Blend指令。作为构成任务的要素,只要是具备以下3种的指令就可以。
1)表示任务所需要的数据的标识符。此处,所谓的标识符是表示指示存储器1的块数据用的,标识符也可以是多个。
2)表示执行任务的运算器的标识符。
3)表示作为执行任务的结果的数据的标识符。
1)~3)的标识符不一定必须是用来访问存储器1的地址本身,也可以是与地址相对应的标识符(权标)。调度管理单元23,将任务的顺序依赖关系表现为标识符之间的依赖关系而执行任务的调度。
下面对调度管理单元23的调度方法的一例予以详述。调度管理单元23的处理,可以以软件或硬件任何一种来实现,也可以使软件和硬件协调动作而实现。
图8为示出本实施例的调度方法的一例的流程图。在图8的流程图中,示出以对应于地址的标识符对在各运算处理器2中的处理的开始和结束进行管理的示例。
首先,控制处理器6,向要开始处理的运算处理器2发送对应于地址的标识符(步骤S21)。接收到此标识符的运算处理器2执行指定的处理(步骤S22),在处理结束时,将该标识符返回到控制处理器6(步骤S23)。
控制处理器6,将返回的标识符送到控制处理器6内的调度管理单元23。调度管理单元23确定下一个应该向其发送标识符的运算处理器2(步骤S24)。这样,块数据的依赖关系的检验全部由调度管理单元23进行。调度管理单元23,除了块数据的依赖关系之外,还考虑运算处理器2及纵横单元4的处理状况等资源信息,确定下一个应该向其发送标识符的运算处理器2。
于是,控制处理器6,向适应依赖关系的检验,并且可确保资源的运算处理器2发送与地址相对应的标识符(步骤S25)。
以上的动作反复执行一直到执行任务信息单元中登录的任务全部执行完毕为止(步骤S26)。
图9为示出调度管理单元23的内部构成的一例的框图。如图所示,调度管理单元23的构成包括记录对应于应该执行的任务的标识符的一览表的执行任务信息单元31,记录任务的执行条件的执行条件信息单元32,记录执行任务时可利用的运算处理器2的种类和其他的资源信息的资源管理表33,以及表示标识符与任务的对应关系的标识符表34。
任务,比如,是上述的Blend指令,对各Blend指令每一个都赋予一个标识符。比如,图9的标识符表34示出标识符T1对应于Blend(P0,0c,0a,1a),标识符T2对应于Blend(P2,2c,2a,3a),标识符T3对应于Blend(P0,0c,0c,2c),而标识符T4对应于Blend(P1,1b,3c,0b)。
记录于执行条件信息单元32中的条件与记录于执行任务信息单元31中的标识符互相对应。比如,在图9中,在同时执行与标识符T2相对应的Blend指令和与标识符T5相对应的Blend指令时,也执行与执行任务信息单元31的标识符T4相对应的Blend指令。另外,在执行与标识符T2相对应的Blend指令,或与标识符T3相对应的Blend指令时,执行与执行任务信息单元31的标识符T1相对应的Blend指令。
另外,如执行与执行任务信息单元31的标识符T4相对应的Blend指令结束,执行条件信息单元32,就当作记录的标识符T4全部结束。在不能为标识符分配多个位字段的场合,在执行任务信息单元中有时会出现多个T4。在此场合,已经结束的T4作为执行任务信息单元中从该T4到下一个出现的T4之间的时隙的任务。
执行任务信息单元31,在执行与标识符T4相对应的Blend指令之际,参照资源管理表33,确定执行对应的Blend指令的运算处理器2。调度管理单元23,参照资源管理表33的信息,确定执行Blend指令的运算处理器2的种类和Blend指令的执行时期。
如确定的运算处理器2结束处理,该运算处理器2释放资源,并将这一点记录于资源管理表33中。另外,在多个运算处理器2要求同一资源的场合,原则上优先处理先发出的Blend指令。
在本实施例中,是以块数据为单位从存储器1中读出,为了提高数据的传送速度,块数据的数据大小最好是设定为1千字节以上。这一点从一般的帧缓存的组块大小为2千字节来考虑可认为是合适的。但是,根据实际安装形式的不同最佳块数据的大小可以改变。
图10为示出表示在块数据中进行运算处理时可有效利用的数据的比例的有效利用率和从存储器1向运算处理器2发送的块数据的传送速度提高率的曲线图。有效利用率是数据大小越小越高,传送速度提高率是数据大小越大越高。
这样,块数据为1千字节以上的数据大小,对于块数据的传送及处理需要通常的处理器的系统时钟的数个周期。存储器1和运算处理器2,因为是以块数据为单位进行处理,所以可以利用以块数据的处理时间为单位的时钟使控制处理器6动作。由此,可以使用比通常的处理器的系统时钟慢的时钟使控制处理器6动作,不需要使用昂贵的高速部件及高速处理过程,并且硬件的定时设计也容易。
另外,对运算处理器2的数目没有特别限制,希望随着运算处理器2的数目的增加,可以使运算处理器2一次处理的块数据的数据大小加大。因此,由于在一个运算处理器2中的处理时间变长而使得控制处理器6切换运算处理器2的频繁程度相应地减小,可以减轻控制处理器6的处理负担。
此外,为了使多处理机系统整体的性能提高,可以考虑提高相同系统整体的动作频率的方法及增加运算处理器2的数目的方法,希望增加运算处理器2的数目而使各运算块应处理的块数据的大小加大。
(第2实施例)第2实施例是将本发明应用于图像处理专用系统的示例。
图11为示出图像处理专用的本发明的多处理机系统的第2实施例的框图。如图所示,与纵横单元4相连接的有分别另外进行图像处理的多个运算处理单元(LDALU)3,控制处理器(LDPCU)6,以及存储器1。
在运算处理单元3的内部,设置有多个像素管道31,与各像素管道31相连接的SRAM(SPM)9,以及进行前处理的初始化/DDA单元32。
各运算处理单元3内的像素管道31相当于图1的运算处理器2,进行多边形的再现和模板匹配处理等图像处理。
图11的控制处理器6,检验在图像处理用的任务中使用的块数据的依赖关系,根据该检验结果对运算处理单元3内的像素管道31的动作进行调度。由此,可使各像素管道31并行动作,可以以极高速度进行各种图像处理。
在上述实施例中,说明的是在运算处理单元3内设置多个运算处理器2的示例,但在运算处理器2仅仅为一个时也可应用本发明。
在上述实施例中,说明的是进行图像数据的合成的处理的示例,但本发明也可应用于图像数据合成处理以外的各种运算处理。
另外,图1,图5及图9中示出的框图的至少一部分也可以利用软件代替硬件来实现。
权利要求
1.一种多处理机系统,其构成包括利用存放于存储器中的数据执行任务的一个以上的运算处理器,和控制上述运算处理器的任务的执行的控制处理器,上述控制处理器的构成包括检验执行任务之际数据之间的依赖关系的检验单元,和根据上述检验的依赖关系,访问上述存储器,将数据从上述存储器传送到上述运算处理器以及进行上述运算处理器中的运算调度的调度单元。
2.在权利要求1中记载的多处理机系统中,上述运算处理器以数据的块单位对上述存储器进行访问。
3.在权利要求1中记载的多处理机系统中,上述依赖关系检验单元检测在执行同一或不同的任务之际共用的数据之间的依赖关系。
4.在权利要求1中记载的多处理机系统中,包含控制在上述存储器和上述一个以上的运算处理器之间收发数据的数据传送控制单元,上述调度单元考虑上述数据传送控制单元输出的传送控制信号进行上述的调度。
5.在权利要求1中记载的多处理机系统中,包括指令存放单元,存放有包含指定上述运算处理器进行的处理内容的标识符,表示存放上述运算处理器作为输入数据而使用的数据的上述存储器上的第1地址,以及表示存放上述运算处理器的运算结果的上述存储器上的第2地址的宏指令,上述依赖关系检测单元根据上述第1及第2地址检出数据之间的依赖关系。
6.在权利要求1中记载的多处理机系统中,包括利用标识应执行的任务的标识符记录任务之间的依赖关系的条件表,和根据上述条件表,记录上述应执行的任务的执行条件信息和各任务执行时所使用的资源信息的资源管理表,上述依赖关系检测单元,根据上述资源管理表中记录的信息,检测在上述应执行的任务中所使用的数据的依赖关系。
7.在权利要求1中记载的多处理机系统中,上述数据是图像数据,上述依赖关系检测单元判断在生成同一或不同合成图像之际共用的数据之间的依赖关系。
8.在权利要求1中记载的多处理机系统中,上述数据的大小设定为1千字节以上的数据大小。
9.在权利要求8中记载的多处理机系统中,执行多个任务的上述运算处理器的数目的越是增加,上述数据的数据大小就可以越大。
10.在权利要求1中记载的多处理机系统中,上述控制处理器,根据在上述存储器和运算处理器之间收发上述数据所需要的时间单位为基准的时钟进行处理动作。
11.在权利要求1中记载的多处理机系统中,上述存储器是分为多个存储体单端口存储器。
12.在权利要求1中记载的多处理机系统中,包括上述存储器及上述运算处理器之间的数据传送用的缓存和在上述运算处理器中的数据处理用的缓存,以使上述存储器和上述运算处理器之间的数据传送和上述算处理器中的数据处理可并行进行。
全文摘要
本发明的构成包括可以以块单位访问的存储器,可利用存放于存储器中的块数据,执行指定的任务的一个以上的运算处理器,以及控制在运算处理器中的任务的执行的控制处理器;控制处理器的构成包括检验执行指定的任务时所使用的块数据之间的依赖关系的依赖关系检验单元,根据检出的依赖关系对访问存储器,从存储器中向运算处理器2传送数据,以及运算处理器的数据处理进行调度的调度单元。
文档编号G06F9/48GK1444154SQ0212178
公开日2003年9月24日 申请日期2002年5月31日 优先权日2002年3月7日
发明者国松敦, 藤原崇, 雨宫治郎, 白川健治 申请人:株式会社东芝