命令传输控制装置和命令传输控制方法

文档序号:6566373阅读:179来源:国知局
专利名称:命令传输控制装置和命令传输控制方法
技术领域
本发明涉及控制命令传输的技术,尤其涉及一种控制从外部源接收的命令的传输顺序的技术。
背景技术
随着近些年来计算机游戏、数字广播等领域中使用的计算机图形技术和图像处理技术的显著进步,需要信息处理装置(如计算机、游戏机和电视机)具有以更高速处理更高清晰度的图像数据的能力。为了满足该需求,不言而喻需要实现算法处理自身的高速度,但适当地在多个处理单元之间分布任务也是很重要的。
在这种情况下,在多个处理单元之间发送和接收用于指令任务执行的相互控制命令(下面简称为“命令”),并且各处理单元相互关联地操作。例如,处理单元A向另一处理单元B发送若干命令。处理单元B将接收到的命令在其自己的队列中排序。处理单元B按照更容易执行的命令的顺序来执行队列中的命令。这种类型的处理,即,命令排序和无序执行,作为一种有效的技术被广泛采用,它让处理单元A和处理单元B异步地操作,并且总体上提高了多个处理单元的处理效率。
在处理单元B中排序的命令被传输到任一个命令执行实体。这里,命令执行实体可以是类似硬件的模块,如内置在处理单元B中的各种类型的算术单元,或者是基于软件的模块,如处理单元B所执行的进程。
从处理单元A发送的命令被传输到处理单元B,然后到所述命令的命令执行实体,从而任务总体上被分布到各种类型的计算资源。
处理单元B可以具有用于每个命令执行实体的多个队列。当处理单元A将命令发送到处理单元B时,它也可以发送ID信息来显式地标识命令执行实体。在这种情况下,处理单元B根据ID信息,将接收的命令输入到命令执行实体的队列。然后,需要的话,从每个队列向相应命令执行实体发出命令。
为每个命令执行实体独立地提供队列,这便于平均向处理单元B控制的每个命令执行实体发出命令的机会。例如,即使当命令执行实体α处于忙碌状态且在相应队列中积累了许多命令时,命令执行实体β的队列也不会直接受其影响。这使得不容易发生这样的情况,即,对命令执行实体β的命令发出定时由于命令执行实体α而被过分延迟。
然而,当处理单元B接收到来自原本没有上述发送ID信息的功能的处理单元C的命令时,更常见的是处理单元B固定地将命令输入到特定队列。因此,当处理单元B接收到来自处理单元C的命令时,命令很可能累积在该特定队列中。即,即使处理单元B具有多个队列,在响应处理单元C的时候也不会享受到这样的好处。照这样,为了有效地利用处理单元B的功能,必要前提是从命令发送实体发送用于标识命令执行实体的ID信息。

发明内容
做出了本发明以解决前述问题,并且其主要目的是提供有效控制在多个处理单元之间发送和接收的命令的技术。
根据本发明的一个实施例涉及一种命令传输控制装置。
该装置,包括命令接收器,用于从外部命令发送实体接收指定了存储器地址的命令;通道分配单元,用于根据接收的命令的存储器地址,为命令分配要传输的通道;命令存储单元,用于临时存储接收的命令;和命令传输单元,用于在所存储的命令当中,将分配到预定通道的命令优先于分配到其他通道的命令传输到命令执行实体。
这里术语“通道”也可以是物理线路上实现的虚拟线路。每个命令可以被分配到多个通道中的任一个,然后在物理线路上传输。命令传输单元也可以选择要通过其将命令发出的通道,使得按多个通道之间的预定比率发出命令。该装置还可以包括分配改变单元,用于根据所存储的命令数目改变通道的分配比率。通道分配单元也可以分配通道,使得所存储的多个命令以预定比率被分布到多个通道。如果其中多个通道中的任一个被分配的命令数量大于或等于预定数量,则分配改变单元可以改变分配比率,从而更可能分配所述通道以外的通道。这可以实现防止过于频繁和过多地分配特定通道的情况的进行。
根据本发明的另一实施例还涉及一种命令传输控制装置。
该装置特征在于,临时存储从命令发送实体接收的、没有唯一指定命令执行实体的命令,并且根据命令所指定的存储器地址,改变传输多个所接收的命令的顺序。
要注意,通过方法、装置、系统、记录介质、计算机程序对本发明的表示与本实施例一样有效。


图1是信息处理装置的功能框图。
图2是示出从总体控制单元看来存储器地址的概念的示意图。
图3是命令传输控制器的功能框图。
具体实施例方式
图1是信息处理装置的功能框图。
信息处理装置100包括总体控制单元110、图像处理单元120和主存储器140。信息处理装置100连接到显示装置150。显示装置150输出作为总体控制单元110和图像处理单元120的处理结果而获得的图像或视频。信息处理单元100还通过总线118连接到用于控制外部设备的多种I/O设备160。连接到信息处理装置100的I/O设备160可以是多个或者多种类型。总体控制单元110和图像处理单元120每一个形成为单芯片电子设备,并且彼此物理上分离。信息处理装置100形成为进一步包括这些电子设备的电子设备。
在硬件方面,如图1所示等,作为用于执行多种处理的功能块描述的每个元件,可以由CPU(中央处理单元)、存储器和其他LSI(大规模集成电路)实现。在软件方面,它由具有保留的管理功能的、加载到存储器的程序等实现。因此,本领域技术人员应当理解,这些功能块可以以多种形式实现,例如仅由硬件、仅由软件或者由其组合来实现,而不特别限于这些中的任一个。
在信息处理装置100中执行操作系统(下面简称为“OS(操作系统)”),用于提供有效利用信息处理装置100的功能和环境以及以统一的方式控制整个装置。在OS上执行多个应用软件。
总体控制单元110包括主控制单元112和多个子控制单元116。子控制单元116和主控制单元112可以通过总线118相互通信。主控制单元112按照每个应用的基本处理单元分配任务,分配给各个子控制单元116。或者,主控制单元112可以自己执行任务。在子控制单元116执行它们各自分配的任务的情况下,多个任务被彼此并行地处理。
下面,将主控制单元112所执行的处理(包括任务分配处理)称为“主进程”,而将子控制单元116所执行的处理称为“子进程”。主控制单元112执行用于信息处理装置100的总体控制的处理,例如具有相对高优先级的有关用户界面的处理。与此相反,子控制单元116执行从主进程分包(subcontract)的处理,例如具有相对低优先级的、后台中执行的计算。
主控制单元112或子控制单元116中包括的DMAC(直接存储存取控制器)(未示出)通过来自主控制单元112或子控制单元116的命令,利用主存储器140或图像处理单元120中的内置图形存储器128,控制数据传输、数据保存等。
主存储器140是主要由总体控制单元110使用的存储区域。在主存储器140中,存储与任务的执行状态有关的数据。例如,临时存储作为关于总体控制单元110执行的计算机图形的坐标计算的结果而获得的坐标数据。还有这样的情况,图像处理单元120所生成的数据被保存在该主存储器140中,图像处理单元120是专门执行图像处理(例如绘制处理)的单元。图像处理单元120遵照总体控制单元110的指令来执行图像处理。图像处理单元120执行与总体控制单元110所处理的各个任务有关的图像处理,并且将所生成的图像或视频输出到显示装置150。图像处理单元120可以分时并且并行地执行多个图像处理。
图像处理单元120包括图形存储器128、算术单元130、显示控制器126、控制块124、图像处理侧DMAC 122和命令传输控制器200。这些单元通过总线118相互连接,因此这些单元可以相互通信。
图形存储器128是用于存储由图像处理单元120使用和管理的图形数据的存储区域。图形存储器128中不仅提供其中存储图像帧数据的帧缓冲器和Z-缓冲器,还提供对应于诸如顶点(vertex)数据、纹理数据和色彩查找表之类的数据的区域,这些数据是在图像帧数据的绘制时参考的基本数据。
控制块124是用于总体上控制图像处理单元120的块。控制块124执行对算术单元130、图形存储器128和显示控制器126的总体控制,并且进行各个块之间数据传输的同步管理、定时器管理等。
图像处理侧DMAC 122遵照来自控制块124的命令,控制总体控制单元110或主存储器140与图形存储器128之间的数据传输、数据保存等。
显示控制器126生成水平和垂直同步信号,并且根据显示装置150的显示定时,从图形存储器128中存储的帧缓冲器按行依次加载图像帧数据的像素数据。此外,显示控制器126通过将按行加载的像素数据,从包括RGB(红-绿-蓝)色彩值的数字数据转换成对应于显示装置150的格式,而产生输出。
算术单元130遵照来自控制块124的命令,执行关于图形的各种算术处理。该处理的一个示例可以是基于三维建模数据、通过坐标变换、隐面消除和阴影处理(shading)生成图像帧数据,以及将其写入帧缓冲器的一系列绘制处理。
算术单元130包括诸如栅格器(rasterizer)132、阴影器单元134和纹理单元136之类的功能块,以便实现尤其对三维图形的高速处理。
栅格器132从总体控制单元110接收要绘制的基本对象(下面称为“图元”(primitive))的顶点数据,并且执行视图变换,通过投影变换将三维空间上的图元转换成绘制平面上的图形。此外,它执行栅格处理,沿着绘制平面的水平方向扫描绘图平面上的图形,并且将它们逐列转换成量化的像素。图元被栅格器132像素扩展,并且对每个像素计算像素信息。像素信息包括RGB色彩值、指示透明度的α值和指示距视点的深度的Z值。
栅格器132沿扫描线生成预定大小的像素区域,并且将其输出到阴影器单元134和纹理单元136。从栅格器132输出的像素区域被一次堆积到队列中,并且阴影器单元134逐个处理堆积的像素区域。
阴影器单元134基于栅格器132计算的像素信息,执行阴影处理,在基于纹理单元136获得的纹理信息的纹理映射之后确定像素色彩,并且在图形存储器128中的帧缓冲器中写入阴影处理之后的图像帧数据。此外,阴影器单元134对写入帧缓冲器的图像帧数据执行诸如雾化或alpha混合之类的处理,确定最终绘制色彩,并且更新帧缓冲器中的图像帧数据。
纹理单元136从阴影器单元134接收指定纹理数据的参数,从图形存储器128中的纹理缓冲器读出所请求的纹理数据,并且在对其执行预定处理后将其输出到阴影器单元134。
在从总体控制单元110接收到图像生成所需的基本信息(例如图元的顶点数据)或者图像生成的开始指令后,图像处理单元120独立于总体控制单元110地执行图像处理。图像处理单元120所生成的数据被传输到图形存储器128和主存储器140。
图像处理单元120中包括的命令传输控制器200将从总体控制单元110发送到图像处理单元120的命令,发给图像处理单元120中的每个单元。命令传输控制器200不仅接收从总体控制单元100中的主控制单元112或子控制单元116发送的命令,还接收从诸如I/O设备之类的其他设备发送的命令。即,命令传输控制器200笼统地接收从外部命令发送实体发送到图像处理单元120的命令,并且将接收到的命令发到作为命令执行实体的各个单元,例如控制块124和显示控制器126。图像处理单元120中包括的每个单元执行由从命令传输控制器200送来的命令所指定的各个任务。这些单元的每一个形成为图像处理单元120中包含的单芯片电子设备。在本实施例中,“命令”可以是直接定义由命令执行实体执行的控制内容的命令,或者是指令数据传输的命令,或者可以是用于命令执行实体控制的参数。命令被转化成总线118上的分组,然后被传输。
命令传输控制器200的细节将结合图3描述。
图2是示出从总体控制单元看来存储器地址的概念的示意图。
信息处理装置100的存储区域由主控制单元112和子控制单元116内置的高速缓存、主存储器140和图形存储器128、以及其他I/O设备内置的存储器一起组成。在总体控制单元110上执行的进程可以通过虚拟地址存取这些物理存储器。该图示意性示出了对于总体控制单元110中执行的进程的虚拟地址空间。
该图所示的图像处理器地址区域160是被分配给总体控制单元110所执行的上述进程的、用来控制图像处理单元120的地址范围。总体控制器地址区域162是被分配来控制总体控制单元110的地址范围。主存储器地址区域164是被分配来控制主存储器140的地址。
在总体控制单元110执行的上述进程中,在指定了命令的处理结果要写入的地址之后,各种类型的命令被传输到图像处理单元120。此时,由总体控制单元110中内置的MMU(存储管理单元)(未示出)将地址转换成物理地址。因此,将物理地址分配给图像单元120从总体控制单元110接收的命令。这个所分配的物理地址可以对应于图形存储器128或主存储器,或者可以对应于总体控制单元110中内置的各个局部存储器。
图3是示出命令传输控制器的功能的功能框图。
命令传输控制器200包括命令接收器210、分布单元220、命令存储单元230和命令发出单元240。
命令接收器210接收来自命令发送实体(如总体控制单元110)的各种类型的命令。分布单元220指定通过哪些通道将接收的命令传输到命令执行实体。尽管总线118自身是单条物理线路,但如果通过将命令分成多个流的方式传输命令,那么总线118也可以实现为单条物理线路中的多条虚拟线路。分布单元220将接收的命令分成多个种类。换而言之,每个命令被分配到通道(其为虚拟线路)中的任一个,其中定义多个种类的传输属性。然后,利用适合可应用的通道的传输属性的方法,将命令传输到各自的命令执行实体。
命令存储单元230对每个所分配的通道分别存储命令。命令发出单元240通过可应用的通道将存储在命令存储单元230中的命令发到命令执行实体。
分布单元220包括执行单元222、分布目的地指定单元224和分配信息存储单元228。
为命令分配的物理地址的范围被分成多个区域。分配信息存储单元228将指示如何定义这些各个区域的分配信息作为表数据(下面称为“分配表”)存储。每个区域可以由起始地址和结束地址指定,例如,第一区域对应于地址“0x00000到0x05000”,而第二区域对应于地址“0x05001到0x18000”。每个区域直接对应于任一个通道。命令存储单元230具有根据这些各个通道的多个队列。例如,分配使得,第一队列232a对应于通道1和第一区域,第二队列232b对应于通道2和第二区域,...,而第n队列232c对应于通道n和第n区域。这样,队列与区域和通道相对应。
分布目的地指定单元224指定其中命令接收器210接收的命令所指定写目的地的物理地址属于哪个区域,从而指定它要分配到哪个通道。响应于这个所分配的通道,执行单元222将命令传输到命令存储单元230中的任一个队列。这样,命令被分布到命令存储单元230中的各个队列。
命令发出单元240选择命令存储单元230中的任一个队列,取出所述队列中的命令,并且通过相应通道将其传输到命令执行实体。
这里,进一步给出对应于各种传输属性的通道的说明。
例如,假设定义了三个通道一通道A、通道B和通道C。假设通道A要求低延迟和低抖动,并且通道A是用于视频数据传输的通道,传输量的变化较小。通道B是用于传输顶点数据或纹理数据的通道,传输量和传输量变化比通道A大。通道C是用于传输图形处理控制命令的通道,具有较小传输量,但要求传输顺序的管理。
这里,假设命令传输的优先级设置为通道A、B和C的顺序。假设通道A、B和C的传输比率设为2∶5∶3。作为一个示例,命令发出单元240首先从对应于通道A的队列中取出一个命令,并且将其传输到命令执行实体。当通过通道A传输了两个命令时,接着从对应于通道B的队列传输命令。在通过通道B传输了五个命令之后,接着从对应于通道C的队列传输命令。在通过通道C传输了三个命令之后,再次从对应于通道A的队列中取出命令。这样,命令发出单元240基于传输优先级和每个通道之间的传输比率,让每个通道传输命令。
此外,执行通道C中的传输顺序的管理。即,作为关于其中执行有序处理的通道的传输控制方法,有下面两种这样的方法。
1.当命令被传输到通道C时,继续通过通道C的命令传输,直到取完对应于通道C的队列中的命令为止。即,当选择通道C时,不选择通道A和通道B作为要通过其传输命令的通道,直到对应于通道C的队列中命令用尽为止。
2.外部命令发送实体通过通道A和B发出命令的顺序不是必须与这些命令被实际传输到命令执行实体的顺序一致。与此相反,在通道C的情况下,控制是这样的,即,保证命令发出的顺序与它们传输的顺序一致。在这种情况下,与1.不同,关于通道A和B的命令传输不会由于关于通道C的命令传输而被阻止。
这样,为每个通道设置各种类型的传输属性,例如是否保证有序传输。通过如上所述多种传输属性的传输有序控制,可以实现与其中在总线118上实现特性不同的多条线路的控制类似的控制。
传统上,当命令发送实体不具有发送用于指定总体控制单元110中的命令执行实体的ID信息的功能时,实践中常用的是这样的一种方法,其中即使命令存储单元230具有多个队列,分布单元220也固定地将命令传输到特定队列(下面称为“主队列”)。因此,在这种情况下,命令自然容易集中累积在主队列中。换而言之,存在这样的缺点,即,除非命令发送实体具有指定命令执行实体的功能,否则这种传统类型的命令传输控制器200不能发挥本来的功能。
作为更具体的示例,在从总体控制单元110向图形存储器128发送指令连续传输图像数据的命令之后,发送用于改变图像处理单元120中的任何单元的设置的命令。于是,设置改变命令再被保存在处于累积了图像传输命令状态的主队列中。因此,即使设置改变命令是在其执行时要求实时性的命令,但由于大量图像传输命令仍会导致执行受影响的不利效果。
与此相反,根据本实施例的命令传输控制器200根据命令所分配的物理地址,在多个队列之间分布命令。因此,即使命令发送实体不显式地指定命令执行实体,命令存储单元230中提供的多个队列也可以得到有效利用。
根据本实施例中描述的命令传输控制器200,可以将单个总线118当作它是多个虚拟线路那样使用。常常有这样的情况,命令的特性(如它是图像数据传输命令还是设置改变命令)一定程度上可以由命令所分配的写目的地址来指定。基于该知识,命令传输控制器200根据命令所分配的物理地址,指定用于命令传输的通道。因此,命令传输控制器200可以使用多个通道传输命令,而不需要专门在命令发送实体侧中提供新功能。
分布目的地指定单元224不是必须通过参考命令所分配的所有地址来指定区域。可以基于地址的一部分,例如高位,来指定该区域。例如,当使用64位大小指定地址时,可以仅低42位用于实际设备中的映射,而其余的高12位可以仅仅被取出,然后用于分布目的地指定单元224。这样,分配表可以根据高位来确定区域的对应关系。如果要处理的地址的位数很大,那么该方法将有效地降低分布目的地指定单元224的处理负载。
分布目的地指定单元224不是必须根据写目的地址固定地分配通道。例如,分配到第一队列232a和第二队列232b的地址范围可以动态地改变,从而存储在第一队列232a中的命令数目与存储在第二队列232b中的命令数目之比不会变得大于或等于5∶1。这样,可以进行控制使得命令不过度累积在特定序列中。
尽管在本实施例中,命令执行实体被描述为硬件上的独立单元,但它们可以是例如,软件上的任务,如图像处理单元120中执行的进程或线程。
基于实施例描述了本发明。这些实施例仅仅是示例性的,并且本领域技术人员应当理解,可以对每个组件及其进程的组合进行各种修改,并且这样的修改仍在本发明范围之内。
要注意,权利要求书中所述的通道分配单元的主要特征主要是由本实施例中的分布单元220实现的。权利要求书中所述的命令存储单元的特征是由本实施例中的命令存储单元230实现的。然而可以说,它的主要特征是由命令存储单元230中包括的每个队列实现的。可以说,权利要求书中所述的命令传输单元是由本实施例中的命令发出单元240实现的。本领域技术人员还应当理解,权利要求书中所述的每个构成组件所要实现的功能是由本实施例中的每个功能块的单个单元或者其联合实现的。
工业应用性根据本发明,可以实现有效控制多个处理单元之间发送和接收的命令的效果。
权利要求
1.一种命令传输控制装置,包括命令接收器,用于从外部命令发送实体接收指定了地址的命令;通道分配单元,用于根据接收的命令的地址,为命令分配要传输的通道;命令存储单元,用于临时存储接收的命令;和命令传输单元,用于在所存储的命令当中,将分配到预定通道的命令优先于分配到其他通道的命令传输到命令执行单元。
2.如权利要求1所述的命令传输控制装置,其中,所述通道分配单元根据接收的命令中的地址的预定一部分,指定要分配的通道。
3.如权利要求1或2所述的命令传输控制装置,其中,所述命令传输单元选择要向其发出命令的通道,使得按多个通道之间的预定比率发出命令。
4.如权利要求1到3中任一个所述的命令传输控制装置,其中,所述通道分配单元通过参考分配表来为命令分配通道,在分配表中,存储器的地址范围被分成多个区域,并且为每个区域分配通道。
5.一种命令传输控制装置,特征在于,临时存储从命令发送实体接收的、没有唯一指定命令执行实体的命令,并且根据命令所指定的地址,改变传输多个接收的命令的顺序。
6.如权利要求1到5中任一个所述的命令传输控制装置,其中,命令执行实体形成为单芯片电子设备。
7.如权利要求1到6中任一个所述的命令传输控制装置,其中,所述命令传输控制装置和命令执行实体集成地形成为单芯片电子设备。
8.如权利要求1到7中任一个所述的命令传输控制装置,其中,所述装置形成为物理上与命令发送实体分离的电子设备。
9.一种命令传输控制方法,包括从外部命令发送实体接收指定了地址的命令;根据接收的命令的地址,为命令分配要传输的通道;临时存储接收的命令;和在所存储的命令当中,将分配到预定通道的命令优先于分配到其他通道的命令传输到命令执行单元。
10.一种命令传输控制方法,特征在于,临时存储从命令发送实体接收的、没有唯一指定命令执行实体的命令,并且根据命令所指定的地址,改变传输多个接收的命令的顺序。
11.一种可由计算机执行的命令传输控制程序,该程序包括下列功能从外部命令发送实体接收指定了地址的命令;根据接收的命令的地址,为命令分配要传输的通道;临时存储接收的命令;和在所存储的命令当中,将分配到预定通道的命令优先于分配到其他通道的命令传输到命令执行单元。
12.一种可由计算机执行的命令传输控制程序,该程序特征在于,临时存储从命令发送实体接收的、没有唯一指定命令执行实体的命令,并且根据命令所指定的地址,改变传输多个接收的命令的顺序。
13.一种计算机可读的记录介质,其存储可由计算机执行的命令传输控制程序,该程序包括下列功能从外部命令发送实体接收指定了地址的命令;根据接收的命令的地址,为命令分配要传输的通道;临时存储接收的命令;和在所存储的命令当中,将分配到预定通道的命令优先于分配到其他通道的命令传输到命令执行单元。
14.一种计算机可读的记录介质,其存储可由计算机执行的命令传输控制程序,该程序特征在于,临时存储从命令发送实体接收的、没有唯一指定命令执行实体的命令,并且根据命令所指定的地址,改变传输多个接收的命令的顺序。
全文摘要
有效地控制在多个处理单元之间发送和接收的命令。命令接收器210从外部命令发送实体接收分配了存储器地址的命令。存储器的地址范围被分成多个区域,并且分配信息存储单元228存储分配表,在分配表中为每个区域分配通道。命令存储单元230包含根据每个通道提供的队列,其中每个队列临时存储接收的命令。分布目的地指定单元224通过参考分配表来指定对应于存储器地址的区域,并且执行单元222将接收的命令传输到对应于所述区域的命令存储单元。
文档编号G06F13/12GK101040270SQ20068000102
公开日2007年9月19日 申请日期2006年5月10日 优先权日2005年6月14日
发明者大塚活志 申请人:索尼计算机娱乐公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1