带条件矢量运算方法和带条件矢量运算装置的制作方法

文档序号:6419290阅读:137来源:国知局
专利名称:带条件矢量运算方法和带条件矢量运算装置的制作方法
技术领域
本发明涉及一种带条件矢量运算方法和带条件矢量运算装置,特别是,涉及谋求准备在称作微处理器、数字信号处理器(以下称为DSP)等处理器或数据处理装置中搭载指令系统的,运算矢量指令、带条件运算指令的运算方法,以及使用该运算方法进行运算的运算装置的改进。
图4表示有关使用具备所谓微处理器、DSP的通用指令系统的数据处理装置,或者搭载有这种数据处理装置,称作LSI系统的半导体集成电路装置的运算对象的数据,例如根据运算对象的数据为“0”之类,或条件是否成立,对运算对象的数据要进行不同的处理时的流程图。
该图4中,首先在步骤S401取得运算对象的数据402。以后在步骤S403中,为了确定在前面的步骤S401中取得的数据402是否为“0”,就进行“0”与数据402的比较处理。
接着在步骤S404,接收前面步骤S403的结果,当该比较结果与“0”不一致(No)时,转移到步骤S406进行处理B,而当步骤S404的比较结果与“0”一致(Yes)时,就在步骤S405对运算对象的数据S402进行处理A后,转移到步骤S406。
在这里,所谓处理B,就是使用运算对象的数据,或对运算对象的数据施行处理A的运算后的数据的处理。
这样,在图4的流程图中,根据步骤S404的执行结果,以下的处理顺序,即数据处理流变成不同了。
尽管,一般地称作微处理器、DSP等的处理器具备作为通用指令系统有指令之一为条件分支指令。所谓条件分支指令,就是在要执行指令中,生成并保持根据以前用以表示运算结果性质信息称作状态码的码,该状态码如与条件分支指令的指定条件符合,则作为条件成立而进行分支的指令,如不符合则作为条件不成立而不进行分支的这种指令。因此,对象图4的流程图中步骤S404的这种执行所谓条件判断后的处理流的分支处理来说,一般是使用条件分支指令。
不过,进行如图4所示的这种处理时,成为必需的条件分支指令尽管对数据处理没有直接给予什么动作,需要用if~then~else语句等将其记述,但是本方法中在处理与1个条件分支对应的if语句微码的执行上要求几个周期的执行周期,这就需要重复执行几个数据,进而,在流水线控制程序的这种LSI系统中流水线流就中断,因此处理的额外开销增加了。
为了防止这种处理性能的降低,存在指令系统之中具有称为带条件运算指令的指令机型。该带条件运算指令是在各种指令上附加与分支指令同样的条件,只要在指定的条件成立时就执行该指令,条件不成立时就不执行指定的动作,照旧转移到下一个步骤的这种指令。通过使用这种指令,能够从程序中排除图4步骤404的这种条件分支指令,并可防止处理能力的下降。
不过,在想要对某集中量的数据执行该带条件运算时,预先要算出有关各数据是否满足条件,将其作为标志保持在另外的屏蔽寄存器(maskregister)里,要边参照该标志边判断是否执行运算,然而作为该前处理的标志算出就成了额外开销,而且有需要另外存放该标志的屏蔽寄存器的问题。
进而,作为谋求这种带条件运算指令的改进方法,例如象特开平8-305563号公报所示的数据处理装置的那样,对运算指令,或无条件执行,或条件“真”时执行或者条件“伪”时执行之,通过选择少数的比特附加到数据上,防止因带条件运算指令的指令种类、操作数自由度的限制而引起性能降低,就可能使程序存储器小容量化。
但是,运算对象的数据若为“0”,则作为处理A给运算对象的数据加“1”,运算对象的数据若不是“0”,则希望对象图象数据的这种集中数据数的数据,进行转移到下一次处理的这种处理时用现有的运算方法或运算装置,如上所述,必须或以相当于if~then~else语句等的微码记述图4的流程只重复其数据的几个,或使用带条件运算指令只重复数据的几个从流程之中排除步骤S404运算指令的任一种方法进行处理,然而这些方法由于不能对指令进行矢量运算处理,因此只需要数据的几个部分环重复处理,所以增加了该部分处理的额外开销。
一般地说,如执行上述的带条件运算的这种处理模型频繁出现的程序一点也不少,例如,在图象CODEC信号处理的这种处理模型中,对庞大的数据大多重复执行一定的处理程序包括在处理程序中的步数,即使增减1步也对处理性能大有影响。
本发明鉴于这样的情况而作出发明,其目的是提供一种带条件矢量运算方法和带条件矢量运算装置,在对某集中数据量进行包括如上所述的带条件运算的处理程序的处理时,可以带条件运算矢量运算处理而不需要另外的屏蔽寄存器,能够削减要进行重复处理的处理额外开销,并能提高处理性能。
为达成上述目的,根据本发明权利要求1的带条件矢量运算方法,是以包括在执行运算处理的运算处理工序取得成为运算处理对象的数据时,与其并行算出并判断是否要执行该运算的运算判断工序;和在进行运算控制以便上述运算处理工序执行矢量运算时,根据上述运算判断工序的判断结果,进行运算控制以便对成为上述运算处理对象的数据执行运算将其结果输出,或不执行运算而输出该数据,可将带条件运算作为矢量运算处理为特征。
按照这些处理工序,可将带条件运算分割为判断是否应进行运算并根据其判断结果控制是否执行运算的处理,并能分割成对应于这个处理进行运算的结果或输出不进行运算的输入数据本身的运算处理,可将这些并行工作,而且,既在进行运算时又在不进行时,数据流都沿着同一路径,所以就可能不中断流水线处理流来处理带条件运算,并能够在矢量运算中高速执行处理。
并且,为达成上述目的,根据本发明的权利要求2的带条件矢量运算方法,是以具备有第1步骤(stage)、第2步骤和第3步骤的流水线处理,该第1步骤具有通过发行矢量运算指令开始供给数据的源数据供给处理工序、和与其并行执行,通过上述源数据处理工序对由供给的数据之中规定的源所供给的数据依次保持其状态,作为状态标志输出的状态标志保持处理工序;该第2步骤具有通过上述源数据供给处理,使用所供给的数据输出进行运算的运算结果的运算处理工序、和与其并行执行,根据上述状态标志和上述矢量运算指令进行与发行条件之间的条件判断,给控制处理工序提供条件成立或不成立信息的条件判断处理工序;及该第3步骤具有顺序存储由上述运算处理工序获得运算结果的运算结果存储处理工序,还包括通过执行上述流水线处理,进行用于执行矢量运算处理的控制,同时进行控制以便在上述条件判断处理的输出信息当条件成立时执行上述运算处理,在条件不成立时作为上述运算处理的运算结果,把由上述源数据供给处理工序所供给的数据之中的上述规定的源所供给的数据原封不动地输出的控制处理工序为特征。
按照这些工序,通过源数据供给处理以矢量指令形式对一个接一个供给的数据,在流水线的第1步骤把数据的性质(例如“0”还是非“0”)作为状态标志输出,在第2步骤通过条件判断处理工序,使用该状态标志的输出和指令发行的条件进行条件判断,就可能将判断结果用于运算处理的控制。即,通过把带条件运算分成条件判断和条件分支运算的流水线步骤,可以用矢量运算形式处理带条件运算。因此,将带条件矢量运算应用于图4所示的现有处理流程,步骤S401和步骤S403与步骤S404进而步骤S405都变成流水线式处理,在连续处理多个数据时,不需要重复(子)程序,并能提高处理性能。并且,既不要另外的屏蔽寄存器,而且又不需要事前判断标志。
为达成上述目的,本发明权利要求3的带条件矢量运算装置,是以具备执行运算处理的运算装置;在上述运算装置取得成为运算处理对象的数据时,与其并行算出并判断是否应执行该运算的运算判断装置;在上述运算装置执行矢量运算进行运算控制时,根据上述运算判断装置的判断结果进行运算控制,以便对成为上述运算处理的对象执行运算将其结果输出,或不执行运算而将该数据输出的运算控制装置,并可能使带条件运算作为矢量运算处理为特征。
根据本结构,可把带条件运算分割成判断是否要执行运算,根据该判断结果控制是否执行运算的处理,和根据该处理输出执行该运算的结果或输出不进行运算的输入数据本身的运算处理,并可将这些并行进行动作,二且,不论进行运算时还是不进行时数据流都沿着同一路径,因此,能够不中断流水线流来处理带条件运算,并可在矢量运算中高速执行运算处理。
为达成上述目的,本发明权利要求4的带条件矢量运算装置,是以具备通过发行矢量运算指令开始供给第1到第N源数据(N为2以上的整数)的源数据供给装置;暂时保存由上述源数据供给装置供给的第1到第N源数据的第1到第N寄存器;用上述第1到第N的寄存器的输出进行运算的运算装置;暂时保存上述运算装置输出的运算结果的流水线寄存器;顺次存储上述流水线寄存器输出的运算结果存储装置;依次保持表示上述第1到第N之中规定的源数据性质的状态标志信息的状态标志保持装置;根据上述状态标志保持装置输出和上述矢量运算指令,由指定的条件信息,输出表示上述矢量运算指令的条件成立或不成立的信息的条件判断装置;通过把上述源数据供给装置供给源数据并存入上述第1到第N寄存器,同时与其并行直到上述状态标志保持装置保持并输出状态标志信息为止作为第1步骤、上述运算装置把对上述第1到第N寄存器的运算处理结果输出到上述流水线寄存器,同时与其并行把直到上述条件判断装置输出表示上述矢量运算指令的条件成立还是不成立的信息为止作为第2步骤、以及直到把上述流水线寄存器的输出存入上述运算结果存储装置为止作为第3步骤的流水线处理,生成用于执行上述矢量运算指令的控制信号,同时接收上述条件判断装置的输出信息,当条件不成立时作为上述运算装置的输出,将上述第1到第N寄存器中规定的源数据的值原封不动地输出,而当条件成立时选择由上述运算装置获得的运算结果进行输出的这种模式选择信号的控制装置为特征。
按照本构成,可以对从源数据供给装置以矢量指令形式一个接一个供给的数据,在流水线的第1步骤把数据的性质(例如“0”或者非“0”)存入状态标志保持装置,在第2步骤就用条件判断装置,进行其状态标志保持装置的输出指令发行的条件和条件判断,并将判断结果用于运算装置的控制。即通过将条件判断和条件分支运算的流水线步骤分成另外的流水线步骤,就能够以矢量运算形式处理带条件运算。因此,通过把该带条件矢量运算应用于图4所示的现有处理流程,步骤S401和步骤S403及步骤S404进而步骤S405都变成流水线上的处理,在连续处理多个数据的情况下无须重复程序,提高了处理性能。并且,可见不要求另外的屏蔽寄存器,而且也不存在需要事前的标志判断的额外开销。
附图的简单说明

图1是本发明实施例1的带条件矢量运算装置的构成图,图1(a)表示与权利要求3对应的构成图,图1(b)表示本发明实施例1的带条件矢量运算装置的方框构成图。
图2表示本发明实施例1的处理流程图。
图3表示本发明第1实施例的图2流程图所示的处理使用本发明第1实施例的带条件矢量运算装置处理时的定时图。
图4表示包括现有带条件运算的处理流程图。
图5表示图1(b)中状态标志检测装置的构成例。
图6表示图1(b)所示的本发明实施例1的带条件矢量运算装置的另一例方框构成图。
以下,用图1至图3说明本发明的实施例。
(实施例1)本实施例1通过判断要运算处理的数据性质,根据该数据的性质控制是否进行运算,使带条件运算执行流水线处理,即,把一连串的处理分成多个步骤,在执行某一连串处理的第1步骤结束后,在执行第2步骤中,与其并行执行下面的一连串处理的第1步骤,所谓不间断处理就是可以编成重复矢量运算处理,因此达到处理性能的提高。
图1(a)表示本发明实施例1的带条件矢量运算装置的示意构成图。
在图1(a)中,10是执行运算处理的运算装置,20是运算装置10取得成为运算处理对象的数据时与其并行算出并判断是否要执行该运算的运算判断装置,30是在运算装置10执行矢量运算进行运算控制时,根据运算判断装置20的判断结果进行运算控制,是否对成为上述运算处理对象的数据执行运算并输出其结果,或不执行该运算而输出该数据进行运算控制的运算控制装置。
而且,这些运算装置10、运算判断装置20及运算控制装置30,是运算装置10在执行运算处理的运算处理工序中,运算判断装置20是在取得成为运算处理对象的数据时与其并行算出并判断是否要执行该运算的运算判断工序中,运算控制装置30是在运算处理工序进行运算控制以便执行矢量运算时,根据运算判断工序的判断结果进行运算控制,是否要对成为上述运算处理的对象的数据执行运算并将其结果输出,或者不执行运算而将该数据输出的运算控制工序中分别进行相应的处理。
下面对工作进行说明。运算装置10假定从图未示的存储器取得成为运算对象的数据,并在这里进行与运算指令相应的处理。这时,运算判断装置20在运算装置10取得数据之际,算出并判断成为该运算对象的数据是不是要运算处理的数据。
而且基于该判断结果决定运算控制装置30是否进行运算处理,并控制运算装置10在判断为要进行运算的数据时,根据指令处理该数据,并且,在判断为否时,不进行运算而原封不动输出数据。
运算控制装置30进行控制,使运算装置10对矢量运算指令进行流水线处理,即,通过在时间上边错开数据的供给、运算、运算结果的存储的各步骤边并行执行的办法,处理矢量指令,但如上所述的那样,与本来的流水线处理并行进行带条件运算指令的条件判断,而且进行运算时或不进行时都要使数据流沿着同一路径,因而可能把带条件运算作为矢量运算进行处理,也能减轻通过不进行矢量运算化的带条件运算,重复运算处理大量的数据时的额外开销。
图1(b)是更具体地示出本实施例1的带条件矢量运算装置的构成图。
图1(b)中,100是在应用本发明的带条件矢量运算装置中执行该运算处理的ALU,并与图1(a)的运算装置10对应。101和102是作为源数据供给装置的存储器,103和04分别是暂时保存由存储器101和102供给的源数据的寄存器,105是用于暂时性保存ALU100输出的运算结果的流水线寄存器,106是作为用于顺序存储流水线寄存器105输出的运算结果存储装置的存储器,150是依次检测从存储器101读出表示数据流性质的状态标志检测装置,107是依次保持状态标志检测装置150检测出的状态标志的状态标志保持装置,108是状态标志保持装置107输出的状态标志,120是由这些状态标志检测装置150和状态标志保持装置107构成的运算判断装置,与图1(a)的运算判断装置20对应,在运算装置取得成为运算处理的对象的数据时,与其并行算出并判断是否要执行该运算。
并且,109是将状态标志108和后述的条件信息115作为输入,进行条件判断而输出表示条件的成立/不成立的信息114的条件判断装置,110是生成控制信号,以便接收矢量运算指令的发行,以矢量指令形式流水线控制本发明的整个运算装置的控制装置,130是由这些条件判断装置109和控制装置110构成的运算控制装置,与图1(a)的运算控制装置30对应,在运算装置进行运算控制使其执行矢量运算时,根据上述运算判断装置的判断结果,对成为上述运算处理的对象的数据进行运算控制,以便是否执行运算并输出其结果,或不执行运算而输出该数据。ALU100是根据这个算控制装置130的控制,作为对要运算处理的数据执行运算并输出或不执行运算就输出的运算装置140进行工作。111是控制装置110输出的存储器101、102、106的存储器控制信号,112是控制装置110输出的寄存器103、104的写入允许信号,113是控制装置110输出的ALU100的模式选择信号,114是条件判断装置109输出表示条件成立/不成立的信息,115是控制装置110输出指令的条件信息。
在这里,将进行图2中示出流程图的处理的情况作为例子,说明使用本实施例1的带条件矢量运算装置结构时的工作。
图2中,首先在步骤S200,使j初始化为“0”。其次在步骤S201,从将该j初始化为“0”的状态开始从存储器101取得运算对象的数据X(j)。该步骤S201对应于源数据供给处理。接着在步骤S202,为了确定前面步骤S201中取得的X(j)是否为“0”,进行“0”与数据X(j)的比较处理,并保持其比较结果。该步骤S202相当于状态标志处理工序。实际上,这些步骤S201和步骤S202并行进行处理,由这些步骤S201和步骤S202构成从图1(b)的存储器101读出成为运算对象的数据的第1步骤310。该第1步骤310就是相当于运算判断工序。
接着,在步骤S203使用带条件运算指令,与前面步骤S202中决定的状态标志比较其比较结果不符合(No)时,通过步骤S204将X(j)原封不动作为Y(j)进行输出,比较结果符合(Yes)时,通过步骤S205,将X(j)加“1”作为Y(j)进行输出,并转移到步骤S210。实际上这些步骤S203和步骤S204、S205并行进行处理,由这些步骤S203和步骤S204、S205构成进行运算处理的第2步骤311。该第2步骤311就相当于运算处理工序和运算控制工序,步骤S203、步骤S204和步骤S205分别相当于条件判断处理工序、运算处理工序。
接着,在步骤S210,这样一来,把得到的运算结果存入存储器106并转移到步骤S206。由该步骤S210构成将运算结果写入存储器106的第3步骤312。
步骤S206是用于作为运算对象的数据的8个数据的处理结束后,重复步骤S201到步骤S205的处理,在步骤S206,当j的“8”未满足(NO)时,在步骤S207,将j加上1,重复步骤S201以后的处理。借助于这些步骤S206和步骤S207,并备有第1步骤310到第3步骤312的流水线处理,可以实现进行控制的的控制处理工序,以便通过执行上述流水线处理进行用于执行矢量运算处理的控制,同时上述条件判断处理的输出信息在条件成立时执行上述运算处理,在条件不成立时作为上述运算处理的运算结果,原封不动地输出通过上述源数据供给处理由供给的数据之中上述规定的源所供给的数据。并且,在j变成“8”以上的值(Yes)时,在步骤S208进行累加Y(0)到Y(7)的值。
本流程图对以X(j)表示的运算对象数据,进行其值是否为“0”的条件分支,除“0”以外时(No)采用X(j)本身作为运算结果,而为“0”时(Yes)采用X(j)+1作为Y(j),通过在j变成“8”的区间重复以上的处理,表示对8个运算对象数据实行同样的带条件运算的情况。
以上的处理中使用本实施例1的构成,并将执行带条件矢量运算时的定时图示于图3中。
图3中,301作为第1源数据的是从存储器101来的读出数据,302作为第2源数据的是设定于寄存器104内的固定值“1”,303是寄存器103的输出,304是作为状态标志保持装置107输出的状态标志108,305表示指令的条件信息115的值,306表示作为条件判断装置109输出的条件成立/不成立的信息114,307是ALU100的模式选择信号113,308是ALU100的输出,309是流水线寄存器105的输出。
并且,310、311、312分别是如上述的第1、第2、第3步骤。即,310是将按照矢量运算指令的发行开始供给源数据的源数据供给处理作为第1步骤;311是将使用按照上述源数据供给处理供给的数据的输出进行运算的运算结果的运算处理作为第2步骤;312是将顺序存储上述运算结果的运算结果存储处理作为第3步骤。图1的控制装置110生成控制信号,以便作为流水线处理执行这些第1步骤310、第2步骤311和第3步骤312。
在这里,图3中的状态标志304为第1源数据301的数据性质信息,并设定数据为“0”时输出“1”的值,而数据为“0”以外时输出“0”的值。作为指令的条件信息305就设定“作为0”这种条件的状态码为“1”。ALU100的模式选择信号设定为,不进行运算处理的“通过”时把第1源数据301送给ALU100的输出306,进行“ADD”运算时把第1源数据301和第2源数据的值相加的结果送给ALU100的输出306。
即,在图3的周期1,控制装置110给图1的寄存器104设定值“1”,同时作为指令的条件信息305也设定值“1”。接着,在周期2,控制装置110从存储器101读出值“1”作为数据X(0),并将其传送到寄存器103和状态标志检测装置150。状态标志保持装置107保持由该状态标志检测装置150的检测结果“0”。随后,在周期3,条件判断装置109因该状态标志保持装置107中保持着的值108为“0”,而且控制装置110输出根据指令的条件信息115值为“1”,将其进行比较,把条件不成立的意旨条件成立/不成立信息114输出给控制装置110。因此,控制装置110对ALU100输出选择“通过”的意旨ALU的模式选择信号113。因此,ALU100对作为第1源数据的寄存器103输出不进行什么运算,而原封不动地输出该值“1”。然后,在该周期4,ALU100的输出“1”借助于控制装置110被传送给流水线寄存器105,该流水线寄存器105的输出写入存储器106。
在这些周期2到4中,与数据X(0)进行“通过”处理并行,在从这些每一周期偏移的周期3到5中,对具有值“2”的数据X(1)同样进行处理。这时也因条件不成立,所以ALU100照样输出该值“2”。
接着,在周期4,控制装置110从存储器101读出作为数据X(0)的值“0”,并传送给寄存器103和状态标志检测装置150。状态标志保持装置107保持由该状态标志检测装置150的检测结果。然后,在周期5,条件判断装置109因状态标志保持装置107中保持着的值108为“1”,而且控制装置110输出指令的条件信息115值为“1”,将其进行比较,把条件已成立的意旨的条件成立/不成立信息114送给控制装置110。因此,控制装置110对ALU100输出意旨选择加法运算的ALU的模式选择信号113。因此,ALU100对作为第1源数据的寄存器103输出“0”进行加上“1”的运算并输出该相加值“1”。随后,在周期6,该ALU100的输出“1”借助于控制装置110传送给流水线寄存器105,并将该流水线寄存器105的输出写入存储器106。
以下,这样的流水线工作对具有值“1”、“2”、“3”、“0”、“5”的数据X(3)、X(4)、X(5)、X(6)、X(7)也同样进行,作为流水线寄存器105的输出分别得到值“1”、“2”、“3”、“1”、“5”。
按处理的流程陈述其工作,在第1步骤310,从存储器101获得作为第1源数据的读出数据301,同时在寄存器104中设定固定值“1”作为第2源数据,而且设定矢量运算指令的条件信息115的值“1”。并且,把从存储器101作为第1源数据的读出数据301传送到寄存器103,同时将其值用状态标志检测装置150判断是否是“0”,若为“0”以外则将“0”,若为“0”则将“1”分别作为状态标志以状态标志保持装置107保持。在这些的处理过程中,从存储器101来的读出数据的传输,相当于源数据供给处理工序,状态标志检测装置150和状态标志保持装置107的处理相当于运算判断工序或状态标志保持处理工序。
接着,在第2步骤311,用条件判断装置109对以状态标志保持装置107保持着的状态标志值与从控制装置110输出的根据矢量运算指令的条件信息115值“1”进行比较,将表示是否要进行ALU100运算的条件成立/不成立信息114输出到控制装置110。控制装置110根据该条件成立/不成立信息114,对ALU100输出ALU的模式选择信号113,条件成立时,ALU100进行对寄存器103的输出加上寄存器104输出的固定值“1”的运算,条件不成立时则进行控制,以便对寄存器103的输出不进行任何运算,按“通过”输出,并向流水线寄存器105输出该ALU100的输出。在这些的处理过程中,条件判断装置109的处理相当于条件判断处理工序,ALU100的处理相当于运算处理工序,条件判断装置109和控制装置110的处理相当于运算控制工序。
并且,在第3步骤312,把暂时存储ALU100输出的流水线寄存器105的输出写入用于获得累加值的存储器106。向存储器106的写入相当于运算结果存储处理工序。
通过图3所示的定时图,可见对数据进行运算时或不进行运算时数据流都沿着同样路径,可以不中断流水线处理流地执行带条件运算,由此可见,能够以矢量运算方式实现8次重复图2的流程图所述的处理中步骤S201到步骤S207部分的步骤。因为,可在矢量运算中包括带条件运算,由此与通常的矢量运算同样,可以分配一个指令,用一个指令来实现相当于这些周期1到周期11的流水线处理,而且可以用所谓(8周期)+(流水线延迟级数)的处理量来实现该处理。
这样,根据本实施例1,在处理子程序中,根据运算对象的数据性质,包括象改变要处理的运算内容那样的带条件运算,其运算对象为多个数据连续时,通过把带条件运算分成条件的判断与条件分支和运算的流水线步骤,即,用ALU进行带条件运算时,除执行运算的周期外,基于变成运算源的第1源数据,判断进行运算的条件是否成立,通过基于该判断结果决定是否执行运算,就可能以矢量运算形式执行带条件运算而不中断处理流,因此,可能连续地处理运算对象数据,能够达到减少处理步骤数提高处理器性能。并且,也不需要另外的屏蔽寄存器等硬件,对电力消耗有限制的机器中安装处理器的情况下,变得很有利。进而,也不会发生由于事先计算标志的额外开销。
另外,以上的说明,虽然使用存储器101、102作为源数据供给装置,即使把源数据供给装置一方以寄存器构成作为固定值,也可以实现同样的带条件矢量运算装置。
并且,通过以累加电路构成作为运算装置的ALU100,削除作为运算结果存储装置的存储器106,通过构成流水线寄存器105作为累加寄存器,也可以实现带条件矢量运算装置。
并且,作为在依次保持表示源数据性质信息的状态标志保持装置107中保持的状态标志,存储器101或102的一方除表示“0”或“0”以外的“0”标志外,可以保持表示正、负的符号标志,表示从存储器101、102读出数据是否一致的符合标志,表示从存储器101、102读出数据的大小关系的标志,即,表示从存储器101的读出数据与从存储器102的读出数据之间的大小关系是否为“≥”、“≤”、“>”、“<”任一状态的标志等,并可作成分支条件。
并且,如图5所示,由设定寄存器150a和比较装置150b构成状态标志检测装置150,假定可给设定寄存器150a输入规定的设定值A,而且用比较装置150b比较该设定寄存器150a的设定值A与从存储器101、102的二者一方读出的数据,保持表示这些大小关系的标志,即,保持表示设定值A与从存储器101、102的二者一方读出的数据之间的关系变成“≥”、“≤”、“>”、“<”任一种状态的标志等,也可以作为条件分支的条件。
进而只要能够纳入第1步骤处理时间的范围内就能进行处理,通过对比较逻辑进行更复杂的运算,也就可以与更复杂的分支条件对应。
并且,如图6所示的存储器101a到101n,或102a到102n那样,由多个存储器构成存储器101、102的至少一方,将这些存储器101、102作为源数据供给装置运算其输出时,对存储器101、102二者一方的存储器输出与另一方的存储器输出进行比较,保持上述那样的各种标志,也可以作为条件分支的条件。这时,与存储器的增加对应需要增设寄存器103、104和ALU100的输入。并且,需要将存储器101、102的输出二者一方的一个输出作为第1源数据,将另一方的多个输出作为第2到第N(N为2以上的整数)源数据并将其进行比较。
另外,对庞大的数据要是重复执行一定的处理子程序的处理模块的话,即使对图象数据以外的数据也可以使用于其处理。
根据权利要求1的带条件矢量运算方法,要做到在执行运算处理的运算处理工序取得成为运算处理对象的数据时,与其并行算出同时判断是否应执行该运算,上述运算处理工序在进行执行矢量运算那样的控制时,根据上述判断结果,要执行运算控制以便对上述运算处理对象的数据进行运算并将其结果输出,或不执行运算而输出该数据,因此可将带条件运算变成矢量运算处理,并且能用矢量运算法高速执行。
根据本发明的权利要求2的带条件矢量运算方法,具备有第1步骤、第2步骤和第3步骤的流水线处理,该第1步骤具有通过发行矢量运算指令开始供给数据的源数据供给处理工序、和与其并行执行,并通过上述源数据处理工序对由供给的数据之中规定的源供给的数据依次保持其状态,作为状态标志输出的状态标志保持处理工序;该第2步骤具有通过上述源数据供给处理使用所供给的数据,并输出进行运算的运算结果的运算处理工序、和与其并行执行,根据上述状态标志和上述矢量运算指令进行与发行的条件的条件判断,给控制处理工序提供条件成立或不成立信息的条件判断处理工序;及该第3步骤具有顺序存储上述运算处理工序产生运算结果的运算结果存储处理工序,除通过执行上述流水线处理执行用于矢量运算处理的控制外,要做到上述条件判断处理的输出信息当条件成立时执行上述运算处理,条件不成立时作为上述运算处理的运算结果根据上述源数据供给处理工序将由供给的数据之中上述规定的源所供给的数据原封不动输出的方式进行控制的控制处理工序,可将带条件运算分成条件判断与条件分支运算的流水线步骤,并能够以矢量运算形式处理带条件运算。因此,连续地处理多个数据时就不需要重复子程序,并提高了处理性能。也不需要另外的屏蔽寄存器等的硬件,也不会发生事先算出标志的额外开销。
根据权利要求3的带条件矢量运算装置,要做到在上述运算装置取得成为运算处理对象的数据时,与其并行用运算判断装置算出同时判断是否要执行该运算,在进行运算控制以便上述运算装置执行矢量运算时,根据上述运算判断装置的判断结果进行运算控制以便对成为上述运算处理的对象数据执行运算并将其结果输出,或不执行运算而将该数据输出,使用可将带条件运算变成矢量运算处理,并能用矢量运算法高速执行。
根据权利要求4的带条件矢量运算装置,它具备通过矢量运算指令的发行开始供给第1到第N源数据(N为2以上的整数)的源数据供给装置;暂时保存由上述源数据供给装置供给的第1到第N源数据的第1到第N寄存器;用上述第1到第N的寄存器的输出进行运算的运算装置;暂时保存上述运算装置输出的运算结果的流水线寄存器;顺次存储上述流水线寄存器输出的运算结果存储装置;依次保持表示上述第1到第N之中规定的源数据性质的状态标志信息的状态标志保持装置;根据上述状态标志保持装置的输出和上述矢量运算指令,由指定的条件信息,输出表示上述矢量运算指令的条件成立或不成立的信息的条件判断装置;通过把上述源数据供给装置供给源数据并存入上述第1到第N的寄存器,同时与其并行直到上述状态标志保持装置保持并输出状态标志信息为止作为第1步骤、上述运算装置把对上述第1到第N寄存器输出的运算处理结果输出到上述流水线寄存器,同时与其并行把直到上述条件判断装置输出表示上述矢量运算指令的条件成立还是不成立的信息为止作为第2步骤、以及直到把上述流水线寄存器的输出存入上述运算结果存储装置为止作为第3步骤的流水线处理,生成用于执行上述矢量运算指令的控制信号,同时生成接收上述条件判断装置的信息,当条件不成立时作为上述运算装置的输出,将上述第1到第N寄存器中规定的源数据的值原封不动地输出去,而当条件成立时选择由上述运算装置产生的运算结果并输出的这种模式选择信号的控制装置,可将带条件运算分成条件判断和条件分支运算的流水线步骤,可用矢量运算形式处理带条件运算。因此,连续地处理多个数据时就不需要重复程序,并提高了处理性能。并且,也不需要另外的屏蔽寄存器等的硬件,也不会发生事先算出标志的额外开销。
权利要求
1.一种带条件矢量运算方法,其特征是包括在执行运算处理的运算处理工序取得成为运算处理对象的数据时,与其并行算出并判断是否应执行该运算的运算判断工序;和在进行运算控制使上述运算处理工序执行矢量运算时,根据上述运算判断工序的判断结果,进行运算控制以便对成为上述运算处理对象的数据执行运算将其结果输出,或不执行该数据运算而输出该数据,可将带条件运算作为矢量运算处理。
2.一种带条件矢量运算方法,其特征是具备有第1步骤、第2步骤和第3步骤的流水线处理该第1步骤具有通过发行矢量运算指令开始供给数据的源数据供给处理工序、和与其并行执行,并通过上述源数据供给处理对由供给的数据之中规定的源所供给的数据依次保持其状态,作为状态标志输出的状态标志保持处理工序;该第2步骤具有通过上述源数据供给处理工序使用所供给的数据输出进行运算的运算结果的运算处理工序、和与其并行执行,根据上述状态标志和上述矢量运算指令进行与发行条件的条件判断,给控制处理工序提供条件成立或不成立信息的条件判断处理工序;以及该第3步骤具有顺序存储由上述运算处理工序产生的运算结果的运算结果存储处理工序,通过执行上述流水线处理,进行用于执行矢量运算处理的控制,同时包括进行控制的控制处理工序,以便上述条件判断处理的输出信息当条件成立时执行上述运算处理,条件不成立时作为上述运算处理的运算结果,通过上述源数据供给处理工序将由供给的数据之中上述规定的源所供给的数据原封不动地输出。
3.一种带条件矢量运算装置,其特征是具备执行运算处理的运算装置;在上述运算装置取得成为运算处理对象的数据时,应该与其并行算出并判断是否要执行该运算的运算判断装置;进行运算控制以便上述运算装置执行矢量运算时,根据上述运算判断装置的判断结果,进行运算控制以便对成为上述运算处理对象的数据执行运算并将其结果输出,或不执行运算而将该数据输出的运算控制装置,可使带条件运算变成矢量运算处理。
4.一种带条件矢量运算装置,其特征是具备通过矢量运算指令的发行开始供给第1到第N源数据(N为2以上的整数)的源数据供给装置;暂时保存由上述源数据供给装置所供给的第1到第N源数据的第1到第N寄存器;用上述第1到第N寄存器的输出,进行运算的运算装置;暂时保存上述运算装置的输出的运算结果的流水线寄存器;顺次存储上述流水线寄存器的输出的运算结果存储装置;依次保持表示上述第1到第N之中规定的源数据性质的状态标志信息的状态标志保持装置;根据上述状态标志保持装置的输出和上述矢量运算指令,由指定的条件信息,输出表示上述矢量运算指令的条件成立或不成立的信息的条件判断装置;通过把上述源数据供给装置供给源数据并存入上述第1到第N寄存器,同时与其并行将直到上述状态标志保持装置保持并输出状态标志信息为止作为第1步骤、上述运算装置将对上述第1到第N寄存器的输出的运算处理结果输出到上述流水线寄存器,同时与其并行将直到上述条件判断装置输出表示上述矢量运算指令的条件成立还是不成立的信息为止作为第2步骤、及直到将上述流水线寄存器的输出存入上述运算结果存储装置为止作为第3步骤的流水线处理,生成用于执行上述矢量运算指令的控制信号,同时生成接收上述条件判断装置的信息,当条件不成立时作为上述运算装置的输出,将上述第1到第N寄存器中规定的源数据的值原封不动地输出,而当条件成立时选择由上述运算装置获得的运算结果并输出的那种模式选择信号的控制装置。
全文摘要
判断从存储器101来的第1源数据是不是要用状态标志检测装置150进行运算的数据,作为状态标志保持其判断结果,用条件判断装置109判断其状态标志要进行运算的条件是否成立。根据该条件成立/不成立信息,控制装置110控制ALU100是否要进行运算。
文档编号G06F17/16GK1330787SQ99814590
公开日2002年1月9日 申请日期1999年12月15日 优先权日1998年12月16日
发明者滨田真纳, 九郎丸俊一, 米泽友纪, 中村刚 申请人:松下电器产业株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1