编译程序的方法

文档序号:6462218阅读:523来源:国知局
专利名称:编译程序的方法
技术领域
本发明涉及数据处理设备。
本发明还涉及操作数据处理设备的方法。
本发明还涉及编译程序的方法。
现代信号处理系统被设计成支持多种标准并提供高性能。多媒体和电信是可找到此类组合要求的典型领域。对高性能的需求产生了可包括专用硬件加速器的体系结构。在HW/SW共同设计共同体中,“映射”是指将应用程序的功能分配到由可获得的硬件部件执行的一组操作的问题[1][2]。操作可按照其复杂性安排成两组细粒(fine-grain)和粗粒(coarse-grain)操作。
细粒操作的示例有加、乘和条件转移。它们在几个时钟周期中执行,且一次仅处理少数输入值。粗粒操作处理更加多的数据,并执行更复杂的功能,诸如FFT蝶(FFT-butterfly)、DCT或复数乘法。
执行粗粒操作的硬件部件的特征在于具有从几个周期到几百个周期不等的等待时间。另外,所述部件使用和产生的数据并不集中于粗粒操作的结束与开始时。相反地,来自所述部件以及传送到所述部件的数据分布于整个粗粒操作执行过程中。因此,功能部件根据输入输出行为展示(复杂)时形(timeshape)[9]。根据操作的粒度(粗度),体系结构可分组到两个不同类别中,即处理器体系结构和异种多处理器体系结构,定义如下-处理器体系结构该体系结构包括诸如ALU和乘法器的功能部件(FU)的异种集。在此环境中的典型体系结构是多用途CPU和DSP体系结构。其中的一些体系结构,诸如VLIW和超标量体系结构,可具有并行执行的多个操作。FU执行细粒操作,数据一般具有“字”的粒度。
-异种多处理器体系结构该体系结构包括通过总线连接的专门的专用指令集处理器(ASIP)、ASIC和标准DSP以及CPU。硬件执行诸如256输入FFT的粗粒操作,因而数据具有“字组”粒度。在此环境中,操作经常被视为任务或处理。
上述两种体系结构方法始终是分开的。
本发明的目的是提供一种数据处理设备,其中(协)处理器作为FU嵌入在VLIW处理器数据路径中,其中VLIW处理器可具有FU,该FU执行具有不同等待时间的操作并同时在多种数据粒度下操作。
本发明的另一目的是提供一种操作这样的数据处理设备的方法。
本发明的另一目的是提供一种用于编译程序的方法,它有效地调度细粒和粗粒操作的混合,使调度长度(schedule’s length)和VLIW指令宽度最小。
按照本发明的数据处理设备至少包括主控制器、第一功能单元和第二功能单元,第一功能单元包括从控制器,功能单元共享公用存储器,所述设备被编程用于执行第一功能单元的指令,所述指令的执行包括第一功能单元的输入/输出操作,其中,在所述执行期间由第二功能单元来处理第一功能单元的输出数据,和/或在所述执行期间由第二功能单元生成输入数据。
例如,第一功能单元是专用指令集处理器(ASIP)、ASIC、标准DSP或CPU。第二功能单元一般执行细粒操作,诸如ALU或乘法器。由所述第一和第二单元共享的公用存储器可以是程序存储器,该存储器包括要由所述单元执行的指令。另外,公用存储器可用于数据存储。
引入粗粒操作对微码宽度具有有益的影响。首先,由于执行粗粒操作的FU内部具有其自己的控制器。因此,VLIW控制器需要较少的指令比特来操纵整个数据路径。其次,采用I/O时形后使得即使操作本身未被完成也可以提供和使用数据,因而缩短了信号的寿命,并因此减少了数据路径寄存器的数量。寻址数据路径寄存器所需的指令比特和并行操纵大量数据路径资源是导致VLIW微码大宽度的两个重要因素。最终,增强指令层并行度(ILP)对调度长度有积极的影响,并因而对微码长度有积极的影响。对于针对高性能并处理长而复杂的程序代码的嵌入式应用程序,保持小的微码区是基本的必要条件。在调度应用程序时,FU的内部调度将部分地被考虑。这样,FU的内部调度可视为嵌入在应用程序的VLIW调度中。这样做时,可采用有关I/O时形的知识,以便以“准时”方式从FU抽取数据或提供数据。即使不是所有由所述单元使用的数据可用,操作也可以开始。执行粗粒操作的FU也可被重新使用。这意味着它可保持在VLIW数据路径中,而其输出数据的实际使用将会不同。
注意到已知通过商业途径可获得的基于VLIW体系结构的DSP,这些DSP限制数据路径的FU执行的定制操作的复杂性。例如,R.E.A.L.DSP[3]允许引入定制单元,称为专用执行单元(AXU)。然而,这些功能单元的等待时间限于一个时钟周期。象TI‘C6000[4]的其它DSP可包含具有一到四个周期的等待时间的FU。Philips Trimedia VLIW体系结构[5]允许一到三个周期的多个周期流水线操作。体系结构层合成工具Phideo[10]可处理具有时形的操作,但不适用于控制支配的应用。在信号传到FU的不同I/O端口的限制下,Mistral2[11]允许定义时形。当前,调度程序不能适当地处理具有复杂时形的FU。为简化调度程序的工作,传统上执行粗粒操作的单元的特征仅在于其等待时间,且操作视为是原子操作。因此,此方法延长了调度,因为所有数据必须在开始操作前可用,而不顾在不具有整个输入数据的情况下所述单元已经可以执行其部分计算的事实。此方法也延长了信号的寿命,增加了所需寄存器的数量。
提供一种对按照本发明的数据处理器设备进行操作的方法。该设备至少包括-主控制器,用于控制所述设备的操作,-第一功能单元,它包括从控制器,第一功能单元被安排用于执行第一类型指令,该第一类型指令对应于具有相对长等待时间的操作,
-第二功能单元,它能够执行第二类型的指令,该第二类型的指令对应于具有相对短等待时间的操作。按照本发明的方法,在执行第一类型的指令期间,第一功能单元接收输入数据并提供输出数据,按照本发明的方法,在所述执行期间由第二功能单元处理所述输出数据,和/或在所述执行期间由第二功能单元生成所述输入数据。
本发明还提供一种用于将程序编译成按照本发明对处理设备进行操作的指令序列的方法。按照此编译方法-构成了一种模型,它代表第一功能单元执行指令中所涉及的输入/输出操作;-根据所述模型,调度一个或多个第二功能单元的指令,用于在所述第一功能单元正在执行要使用输入数据的指令时为所述第一功能单元提供所述输入数据,和/或用于在所述第一功能单元正在执行计算输出数据的指令时从所述第一功能单元检索所述输出数据。
下面参照附图对本发明的这些特征与其它方面进行更详细的描述,附图中

图1示出数据处理设备,图2示出图1中数据处理设备可执行的操作的示例,图3A示出操作的信号流图(SFG),图3B示出操作的调度及其时形功能,图4A示意性示出图2的操作,图4B示出用于在可保持定制功能单元(FU)中对图4A的操作执行进行调度的信号流图,图4C示出用于在非可保持定制功能单元(FU)中对图4A的操作执行进行调度的信号流图,图5示出包括图2的操作的嵌套循环,图6A示出SFG中图5的嵌套循环的传统调度,图6B示出按照本发明的SFG中所述嵌套循环的调度。
图1示意性示出按照本发明的数据处理设备。该数据处理设备至少包括主控制器1、第一功能单元2及第二功能单元3,其中第一功能单元2包括从控制器20。两个功能单元2和3把包括微码的存储器11共享为公用存储器。数据处理设备被编程用于执行第一功能单元2的指令,其中所述指令的执行涉及第一功能单元2的输入/输出操作。在所述执行期间由第二功能单元3处理第一功能单元2的输出数据,和/或在所述执行期间由第二功能单元3生成输入数据。在所示实施例中,数据处理设备还包括功能单元4和5。
图1所示的数据处理设备的实施例的特征在于第一功能单元2被安排用于处理第一类型指令,第一类型的指令对应于具有相对长等待时间的操作,而第二功能单元3被安排用于处理第二类型指令,第二类型的指令对应于具有相对短等待时间的操作。
作为示例,FFT算法的可能变化可以被考虑,可以使用“FFT基-4(FFT radix-4)”来实现。于是,此定制FU可被重新使用,虽然是从时间抽选到频率抽选FFT来修改所述算法。在嵌入式定制FU忙于其粗粒操作时,VLIW处理器可执行其它细粒操作。因此,长等待时间的粗粒操作可以被看作在硬件上实现的微线程[6],它在剩余数据路径的资源正执行其它计算时执行单独线程的,属于主线程。
在介绍调度问题前,将信号流图(SFG)[7][8][9]定义为表示给定应用程序代码的一种方式。SFG描述了在所述代码中执行的原始操作及这些操作之间的相关性。
定义1.信号流图SFG。
SFG是个8元组(V,I,O,T,Ed,Es,w,),其中·V是顶点(操作)集合,·I是输入集合,·O是输出集合,· 是I/O操作端子的集合,· 是数据边缘(data edge)的集合,· 是序列边缘(sequence edge)的集合,以及
·wEs→Z是描述与每个序列边缘相关的定时延迟(按时钟周期)的函数;·δV→Z是描述与每个SFG的操作相关的执行延迟(按时钟周期)的函数。
在SFG定义中,对有向数据边缘与有向及加权的序列边缘加以区别。它们在调度问题上施加不同的约束条件,其中“调度”是为每个操作v∈V确定开始时间s(v)的任务,以SFG指定的优先约束条件为条件。正式地定义2.传统调度问题。
给定SFG(V,I,O,T,Ed,Es,w,δ),找出操作sV→Z+的整数标记,其中s(vj)≥s(vi)+δ(vi) i,j,h,k∶((vi,oh),(vj,ik))∈Eds(vj)≥s(vi)+w((ti,tj)) i,j∶(ti,tj)∈Es且调度的等待时间maxi=1...n{s(vi)}为最小值。
如上所定义一样,在调度问题中,对每个操作做单独判定,即其开始时间。因为I/O时形未包括在分析中,因而在完成操作前,没有输出信号被认为有效。同样地,仅在所有输入信号可用时,操作本身才开始。这的确是安全的假设,但在操作的数据消耗(dataconsumption)与产生时间和SFG中其它操作的开始时间之间不允许同步。
在正式叙述问题之前,定义操作的时形如下定义3.操作的时形。
给定SFG,对于每个操作v∈V,时形定义为函数σ∶Tv→Z+,其中Tv={t∈T|t=(v,p),且p∈I∪O}是操作v∈V的I/O端子的集合。
分配给每个I/O端子的编号对相对于操作开始时间的I/O活动的延迟进行模仿。因此,对于执行延迟δ的操作,时形函数将0到δ-1之间的整数值与每个I/O端子相关。图3描述了操作的时形的示例。
在传统调度问题中,每个操作在图形中被看成是原子操作。为了采用操作的I/O时形的观念,重访问调度问题。其中对每个操作进行单独的判定,现在进行多个判定。每个调度判定旨在确定属于给定操作的每个I/O端子的开始时间。因此,将操作的时形考虑在内的再访问的调度问题的定义如下定义4.I/O时形调度问题给定SFG和SFG中每个操作v∈V的时形函数,找出端子sT→Z+的整数标志,其中s((vj,ik))≥s((vi,oh)) i,j,h,k∶(t(vi,oh),(vj,ik))∈Eds(ti)≥s(ti)+w((ti,tj)) i,j∶(ti,tj)∈Es且调度的等待时间maxi=1...n{s(vi)}是最小值。
重要的是要注意到,引入时形的概念后,不再需要操作的等待时间函数δ,且对每个操作的端子进行调度判定。找到的调度必须满足有关数据边缘、序列边缘的约束条件,并考虑I/O端子的定时关系,如时形函数中定义的那样。为采用操作的I/O时形特征,时形函数σ被转换成多个序列边缘,被添加在集合Es中。对于任何可行的调度,这些额外约束条件强迫I/O操作端子的开始时间如此,以便原粗粒操作的时形被考虑。
视实施粗粒操作的FU是否可在其计算期间停止而定,时形函数到序列边缘的转换可以以不同的方式来完成。这将参照图4来进行更详细的描述。如果操作可以停止,假如保持I/O端子的并发和顺序,则操作的时形可以变长。如果该单元无法停止,则在图形中必须添加额外约束条件,以确保I/O端子之间不仅顺序而且相对距离也得以保持,如时形函数所强制的那样。
通过示例,考虑属于相同原粗粒操作的两个I/O端子,即t1和t2。于是会发生三种不同的情况1)并发性如果两个I/O端子t1和t2按照粗粒操作的时形在相同周期期间出现,则添加两个序列边缘。那些额外缘保证对于给定的SFG,任何可行调度中的操作t1和t2将在相同周期中出现(例如,图4B中的o1和i2)。
如果σ(t1)=σ(t2),则(t1,t2),(t2,t1)∈Es且w(t1,t2)=w(t2,t1)=0按照再访问的调度问题的定义,那两个添加的边缘强制s(t1)≥s(t2)和s(t2)≥s(t1)2)串行化(可保持操作)如果两个I/O端子t1和t2按照粗粒操作的时形不是并发的,则添加一个序列边缘。此额外缘保证在任何可行调度中将保持两个操作的次序。总之,它允许相对于操作t1,可延迟操作t2(例如,图4B中i1和i2)。
如果s(t2)-s(t1)=λ>0,则(t1,t2)∈Es,且w(t1,t2)=λ按照再访问的调度问题的定义,此添加的边缘强制s(i2)≥s(i1)+w(i1,i2)=s(i1)+λ因此s(i2)-s(i1)≥λ3)串行化(非可保持操作)对于任何可行调度,两个I/O端子t1和t2的开始时间之间的距离被强制,如粗粒时形所定义的那样(例如,图4C中的i1和i2)。这通过添加两个序列边缘来完成如果s(t2)-s(t1)=λ>0,则(t1,t2),(t2,t1)∈Es且w(t1,t2)=λ,w(t2,t1)=-λ按照再访问的调度问题的定义,那两个添加的缘强制s(t2)≥s(t1)+w(t1,t2)=s(t1)+λs(t1)≥s(t2)+w(t2,t1)=s(t2)-λ根据上两个等式,t1和t2之间的开始时间的差异等于时形中强制的值。
因此s(t2)-s(t1)=λ
对于每个操作,该方法会添加大量边缘,大约为|I∪O|2。然而,其中许多缘可以删除,例如在操作端子的集合中引入偏序(partialorder)。删除步骤通常不重要,因而此处不做描述。一旦操作由其I/O操作集描述,且添加了序列边缘,则SFG使用已知的常规技术来调度。假设由于操作的时形的约束条件被考虑,则每个操作的I/O端子现在可相互分离,并可以独立地被调度。
通过示例,假定给定应用程序正在密集执行图2中所示的“2Dtransform(二维变换)”函数。为使示例更实际,所考虑的函数正在执行2D图形操作。按照图2中所描述的代码,采用矢量(x,y)并返回矢量(X,Y)。为提高处理器的性能,对于定制FU,用硬件实现“2Dtransform”。由于函数在硬件上执行,它可以真正视为单个粗粒操作。图3A描述了此函数的信号流图。图3B描述了(粗粒)操作的可行内部调度,其中定制FU内可提供一个加法器和一个乘法器,两个均具有一个周期的等待时间。操作具有四个I/O端子并且由定制FU在四个时钟周期σ=0,...3中执行。
在此示例中,虽然FU在所有四个周期期间均是有效的(图3B),但在周期2并未执行I/O操作。从VLIW数据路径,看不到由定制FU执行的内部操作,且仅I/O时形实际上需要模仿操作耗用与产生其数据的方式(图3B)。
图4A中的原粗粒操作的内容现在不描述,它被改变为四个单周期操作的图,每个操作模仿一个I/O端子。必须添加序列边缘以保证在任何可能的可行调度中考虑原粗粒单元的时形。图中,序列边缘由虚线表示,虚线从第一操作开始,并用以箭头在第二操作结束。图4B中,示出了模仿可保持定制FU行为的所得到的SFG。特别地,按照粗粒操作的时形,在不同周期执行的I/O端子被串行化,以便保持它们的次序。例如,在所述图形中,操作i1和i2之间存在具有λ=1值的边缘w(i1,i2)。因此,s(i2)≥s(i1)+w(i1,i2)=s(i1)+λ。两个或两个以上I/O端子的并发性也被保持。例如,图4B的时形包括第一边缘w(i2,o1)和第二边缘w(o1,i2),两个边缘均具有λ=0值,以便保证操作i2和o1的并发性。因此,当保持机制适合于所述单元时,调度程序可延长将I/O端子彼此移开的粗粒操作,直到序列边缘不违例。对硬件的影响是FU可能被停止,以更好地同步传送到其它操作和从其它操作传来的数据。
图4C示出当保持机制不适合于定制FU时描述I/O端子中的粗粒操作而获得的图形。在这种情况下,添加的序列边缘保证在任何可行调度中,I/O端子的任何连接之间的相对距离不得与粗粒操作的时形所强制的距离不同。
现在,考虑一个代码,其中使用映射在复杂FU上的“2Dtransform”函数,如图5所示。在此示例中,“2Dtransform”操作是循环体的一部分,环形中诸如ALU操作和乘法操作的其它细粒操作也被执行。假定在VLIW处理器上执行所述代码,该VLIW处理器在其数据路径中包含乘法器、加法器和“2Dtransform”FU。
图6A描述了上述环形的SFG的常规调度。粗粒操作被认为是“原子的”,且无另一操作与它平行执行。在图6B中,复杂单元的I/O调度被扩展并嵌入在循环体的SFG中。复杂操作与其它细粒操作同时被执行。按照所述调度,在实际需要时,用于复杂FU的数据被提供到剩余的数据路径,反之亦然,因而减少了调度的等待时间。当某数据不适合于复杂FU并且计算不能继续进行时,单元会停止(例如,图6B中的周期2)。停止周期在算法的调度期间被隐含地确定。利用建议的解决方案,算法的等待时间从10个周期减少到8个周期。所需寄存器的数量也减少。图6A的周期0中产生的值必须在两个周期中保持有效,而图6B的调度中的相同信号直接被使用。就VLIW处理器的微码区域而言,建议的解决方案是有效的。复杂FU包含其自己的控制器,而留给VLIW控制器的仅有任务是将粗粒FU与其余的数据路径资源同步。必须发送给所述单元的仅有指令是开始和停止命令。这可在VLIW指令字中用几个比特来编码。
在嵌入式复杂FU忙于其计算时,VLIW处理器可执行其它操作。
长等待时间单元可看成是硬件上执行的微线程,在其余的数据路径使用其余的数据路径的资源正在执行其它计算的同时执行一个任务。
作为实例研究,已经使用FFT基4算法测试了所述方法的有效性。用分布式寄存器堆实现了用于VLIW体系结构的FFT,用在HP-UX机器上运行的Frontier Design的体系结构层合成工具“A|RT designer”进行了合成。形成所考虑的FFT算法的核心的基4功能处理4个复合数据值和3个复合系数,返回4个复合输出值。定制单元“基4”内部包含加法器、乘法器及其自己的控制器。该单元消耗14个(实)输入值并产生8个(实)输出值。表1给出了“基4”的其它细节。
表1基4功能单元
如表2所示,测试了三种不同的VLIW实现。体系结构(“FFT_org”和“FFT_2ALU’s”)包含相同的硬件资源,但在可以执行的操作的粗度方面有所不同。
表2测试的数据路径体系结构
对于每个体系结构实例,表3列出了时钟周期方面的执行的FFT基4算法的性能和存储应用程序代码的VLIW微码存储器的大小。如果第一实现(“FFT_org”)作为参考,则从表3可以看到“FFT_2ALU’s”表现出更高的并行度和最佳的性能。
表3性能与微码的大小,实验结果
然而,数据路径中可用的额外ALU必须直接由VLIW控制器控制,且注意到微码的指令宽度大大增加。另一方面,“FFT_radix4”达到介于开始的两个实验之间的性能,但合成了窄得多的微码存储器。通常,并行所必需的代码部分是整个代码的一小部分。如果FFT是在长得多的应用程序代码中的核心功能,则在所述代码的其它部分中将不会适当使用微码宽度,因此“FFT 2ALU’s”中所需的ILP也将不会在所述代码的其它部分中得到适当使用,导致微码区域的浪费。“FFT_2ALU’s”和“FFT_radix4”在体系结构中均提供2个ALU和一个乘法器,用于处理重要的FFT循环体,但在后者的微码中需要较少的比特来操纵可用并行。
对于每一个示例,表4列出了体系结构中所需的寄存器数。特别地,在最后的体系结构中,寄存器的总数是VLIW处理器中出现的寄存器和“基4”单元中实现的寄存器的总和。完成的实验证实了调度FFT SFG、采用“基4”粗粒操作的I/O时形会减少所需寄存器的数量。
表4寄存器压力,实验结果
按照本发明的方法允许灵活的HW/SW划分,其中复杂函数可用硬件实现,作为VLIW数据路径中的FU。建议的“I/O时形调度”方法允许单独调度每个I/O操作事件的开始时间,并最终使操作时形本身变长,以便更好地使操作与其环境相适应。通过在VLIW体系结构中使用粗粒操作,可实现高的指令层并行,而无需在微码存储器宽度方面付出太多。对旨在提供高性能并处理长而复杂程序代码的嵌入式应用程序,保持小的VLIW微码宽度是基本必要条件。
参考资料[1]“COSY用于在芯片上创建视频系统的模块的接口层”(Jean-Yves Brunel,Alberto Sangiovanni-Vincentinelli,Yorsinori Watanabe,Luciano Lavagno Wido Kruytzer and Frédéric Pétrot,“COSYlevels ofinterfaces for modules used to ereate a video system on chip”,EMMSEC’99 Stockholm 21-23 June 1999.)。“作为系统级设计方法学驱动器的MPEG-2解码器实例研究”(Pieter van der Wolf,Paul Lieverse,Mudit Goel,David La Hei and KeesVissers,“An MPEG-2 Decoder Case Study as a Driver for a System LevelDesign Methodology”,Proceedings 7th International Workshop onHardware/Software Codesign(CODES’99),pp 33-37,May3-5 1999.)。“R.E.A.L.DSP低功率/低成本电信与用户应用的可重配置嵌入式DSP体系结构”(Rob Woudsma et al.,“R.E.A.L.DSPReconfigurable Embedded DSP Architecture for Low-Power/Low-CostTelecommunication and Consumer Applications”,PhilipsSemiconductor.)。“TMS320C6000 CPU与指令集参考指南”(Texas Instruments,“TMS320C6000 CPU and Instruction Set Reference Guide”,LiteratureNumberSPRU189D March 1999.)。“Trimedia,TM1300初级数据手册”(Philips Electronics,“Trimedia,TM1300 Preliminary Data Book”,October 1999 FirstDraft.)。“同时的从属微线程(SSMT)”(R.Chappel,J.Stark,S.P.Kim,S.K.Reinhardt,Y.N.Patt,“Simultaneous subordinate microthreading(SSMT)”,ISCA Proc.of the International Symposium on ComputerArchitecture,pp.186-95 Atlanta,GA,USA,2-4 May 1999.)。“DSP代码生成约束条件分析”(Bart Mesman,Adwin H.Timmer,Jef L.van Meerbergen and Jochen Jess,“Constraints Analysis for DSPCode Generation”,IEEE Transactions on CAD,pp 44-57,Vol.18,No.1,January 1999.)。“具有分布式寄存器堆的处理器上DSP代码的有效调度”(B.Mesman,Carlos A.Alba Pinto,and Koen A.J.van Eijk,“EfficientScheduling of DSP Code on Processors with Distributed Register files”Proc.International Symposium on System Syntesis,San Jose,November1999,pp.100-106.)。“多维定期调度模型和复杂性”(W.Verhaegh,P.Lippens,J.Meerbergen,A.Van der Werf et al.,“Multidimensional periodicscheduling model and complexity”,Proceedings of European Conferenceon Parallel Processing EURO-PAR’96,pp.226-35,vol.2,Lyon,France,26-29 Aug,1996.)。“PHIDEO高吞吐量应用的高级合成”(W.Verhaegh,P.Lippens,J.Meerbergen,A.Van der Werf,“PHIDEOhigh-level synthesisfor high throughput applications”,Journal of VLSI Signal Procesing(Netherlands),vol.9,no.1-2,p.89-104,Jan.1995.)。“Mistral2数据表”(Frontier Design Inc,“Mistral2 Datasheet”,Danville,California CA 94506 U.S.A)。“Phideo中的模块设计和分层抽取”(P.E.R.Lippens,J.L.vanMeerbergen,W.F.J.Verhaegh,and A.van der Welf,“Modular design andhierarchical abstraction in Phideo”,Proceedings of VLSI SignalProcessing VI,1993,pp.197-205.)。
权利要求
1.数据处理设备,至少包括一个主控制器(1)、包括从控制器(20)的第一功能单元(2)和第二功能单元(3),所述功能单元(2,3)共享公用存储器(11),所述设备被编程用于执行所述第一功能单元(2)的指令,所述指令的执行涉及所述第一功能单元(2)的输入/输出操作,其中,在所述执行期间,所述第二功能单元(3)处理所述第一功能单元(2)的输出数据,和/或在所述执行期间,所述第二功能单元(3)生成输入数据。
2.如权利要求1所述的数据处理设备,其特征在于所述第一功能单元(2)被安排用于处理第一类型指令,所述第一类型指令对应于具有相对长等待时间的操作,以及所述第二功能单元(3)被安排用于处理第二类型指令,所述第二类型指令对应于具有相对短等待时间的操作。
3.如权利要求1所述的数据处理,其特征在于具有可由所述主控制器(1)控制的停止装置,用于停止所述第一功能单元(2)的操作。
4.一种操作数据处理器设备的方法,所述设备至少包括-主控制器(1),用于控制所述设备的操作;-第一功能单元(2),它包括从控制器(20),所述第一功能单元(2)被安排用于执行第一类型指令,所述第一类型指令对应于具有相对长等待时间的操作;-第二功能单元(3),他能够执行第二类型的指令,所述第二类型的指令对应于具有相对短等待时间的操作,其中,在所述第一类型的指令的执行期间,所述第一功能单元(2)接收输入数据,并提供输出数据,按照所述方法,在所述执行期间,所术述第二功能单元(3)处理所述输出数据,和/或在所述执行期间,所述第二功能单元(3)生成所述输入数据。
5.如权利要求4所述的方法,其特征在于在所述第一类型的指令的执行期间,所述主控制器(1)暂时停止所述第一功能单元(2)的操作。
6.一种用于将程序编译成指令序列的方法,所述指令序列用于操作如权利要求1所述的处理设备,按照所述编译方法-构成模型,所述模型代表第一功能单元(2)执行指令中所涉及输入/输出操作;-根据所述模型,调度一个或多个第二功能单元(3)的指令,用于在所述第一功能单元(2)正在执行要使用输入数据的指令时为所述第一功能单元(2)提供所述输入数据,和/或用于在所述第一功能单元(2)正在执行计算输出数据的指令时从所述第一功能单元(2)检索所述输出数据。
7.如权利要求6所述的方法,其特征在于所述模型是信号流图。
全文摘要
描述一种数据处理设备,至少包括一个主控制器(1)、包括从控制器(20)的第一功能单元(2)和第二功能单元(3),功能单元(2,3)共享公用存储器(11),设备被编程用于执行第一功能单元(2)的指令,指令的执行涉及第一功能单元(2)的输入/输出操作,其中,在所述执行期间,第二功能单元(3)处理第一功能单元(2)的输出数据,和/或在所述执行期间,第二功能单元(3)生成输入数据。
文档编号G06F9/45GK1372661SQ01801174
公开日2002年10月2日 申请日期2001年2月28日 优先权日2000年3月10日
发明者N·G·布萨, A·范德维尔夫, P·E·R·利彭斯 申请人:皇家菲利浦电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1