发明内容
从而,本发明的一个目的是为了提高处理器速度从不同于这些
常规技术的立足点研究这些问题,并且提供一种新的解决办法,更具
体地,本发明的一个目的是提供一种能象流水线改进吞吐量同时解决
执行条件转移所产生的代价的系统即控制程序产品,提供一种能执行
该控制程序的数据处理系统,并且提供一种它的控制方法。本发明的
另一个目的是提供一种控制程序产品,其能以高速并且不必使用各种
各样的专用于各个数据处理的专用电路下灵活地执行各个数据处理,
甚至是复杂的数据处理。而且,本发明的目的之一是提供一种能执行
该程序的数据处理系统以及它的一种控制方法。
本申请的发明人发现上面描述的问题是由于作为上述各技术的
基础的用于常规非流水线技术的指令组的限制造成的。更具体地,定
义处理器中的数据处理的程序(微代码、汇编码、机器语言等)的指令
组(指令格式)是由一条指令操作(执行指令)和一个定义在执行该指令
中使用的寄存器组的环境或接口的操作数的组合形成的助记码。从
而,在查看常规指令组时由指令组规定的整个处理方面是完全可理
解。与此相反,在指令组出现并被译码之前不能知道指令组的任何方
面。本发明重大地改变指令组本身的结构,从而成功地解决上述现有
技术难以解决的问题并且能够明显地改进数据处理系统的性能。
在本发明中,提供一种包括第一字段和第二字段的指令组,其
中第一字段描述(记录)用来指定在构成一个数据处理系统的至少一
个处理单元中执行的操作内容或数据处理内容的执行指令,而第二字
段描述(记录)把该处理单元设置到准备好执行根据执行指令要执行
的操作或数据处理的状态的准备信息,从而在第二字段中描述和第一
字段中描述的执行指令的内容无关的用于操作或数据处理的准备信
息。这样,本发明提供一种由上面的指令组构成的控制程序产品或控
制程序设备。可以以记录在或存储在数据处理系统可读的适当记录介
质上的形式或者以嵌入在计算机网络上或其它通信上发送的传输媒
体中的形式提供该控制程序。
该处理单元是一个适当的用以形成数据处理系统的单元并且在
其中可按功能性或者数据通路划分该数据处理系统,并且该单元包括
一个控制单元、一个算术单元和一个处理单元或数据流处理单元,后
者具有可按样板管理的有些小型的数据通路或者具有专用数据通路。
依据本发明的一种数据处理系统包括:至少一个的处理单元,
用于执行操作或数据处理;一个取指令组的单元,其中指令组包括第
一字段和第二字段,第一字段描述用于指定要在该处理单元中执行的
操作或数据处理的内容的执行指令,第二字段描述把该处理单元设置
到准备好执行根据执行指令要执行的操作或数据处理的状态的准备
信息;第一执行控制单元,用于译码第一字段中的执行指令并且用于
通过被预置为准备好执行该执行指令所指定要执行的操作或数据处
理的该处理单元来着手该操作或数据处理;以及第二执行控制单元,
用于译码第二字段中的准备信息,并且和第一执行控制单元的进行内
容无关地设置该处理单元的状态从而准备好执行另一个操作或数据
处理。
一种依据本发明的用于控制包括至少一个用来执行操作或数据
处理的处理单元的数据处理系统的方法包括:取包含着上述第一和第
二字段的指令组的步骤;译码第一字段中的执行指令并且通过被预置
为准备好执行该执行指令所指定要执行的操作或数据处理的该处理
单元来着手该操作或数据处理的第一控制步骤;以及与第一控制步骤
无关地译码第二字段中的准备信息并设定该处理单元的状态从而准
备好执行一操作或数据处理的第二控制步骤。
依据本发明的指令组具有描述一执行指令的第一字段和描述准
备信息的第二字段,其中准备信息(准备指令)和执行指令无关并包括
诸如寄存器和中间数据的信息。从而,在算术指令中,在第一字段中
说明诸如“ADD”的指令操作,并且在第二字段中说明规定寄存器的
指令或信息。看起来该指令组和常规的汇编码相同,但是执行指令和
准备信息彼此是独立的,并且从而在同一指令组内彼此是不对应的。
这样,该指令组具有这样的特性,由该数据处理系统的处理单元例如
控制单元执行的处理不能通过它自己得到完整的理解或者不能由其
自身完全规定。换言之,依据本发明的指令组明显不同于常规助记码。
在本发明中,常规地在单个或相同的指令组中描述的指令操作以及它
的对应操作数被允许成单独地和独立的定义,从而,常规指令组不能
实现的处理变成容易被执行。
在第二字段中说明用于在相继的指令的第一字段中所说明的执
行指令的准备信息。这使得可能在出现一条包含某执行指令的指令组
之前准备该执行指令的执行。换言之,有可能在执行指令的前面把处
理单元设置成准备好根据该执行指令要执行某操作或数据处理的状
态。例如,有可能在某指令组的第一字段中说明一条用于操作该数据
处理系统中的一控制单元中所包括的至少一个算术/逻辑单元的指令
(指令格式或指令记录)。并且有可能在前一个指令组的第二字段中为
该至少一个算术/逻辑单元中的上述操作说明用于定义该算术/逻辑
单元的接口例如源寄存器或目的地寄存器的指令或信息。从而,在取
出该执行指令之前,译码该算术/逻辑单元的寄存器信息,并设定各
寄存器。接着,根据随后取出的执行指令执行逻辑操作,并在指定的
寄存器中存储结果,还有可能在第一字段中和该执行指令一起说明目
的地寄存器。
从而,借助本发明的指令组,可以象流水线处理那样在多阶段
下进行数据处理并且改进吞吐量。即,指令“ADD,R0,R1,#1234H”
意味着相加寄存器R1和数据#1234H并且在寄存器R0中存储结果。
然而,根据硬件体系结构,为了高速处理这是有好处的,即在执行指
令ADD的执行周期的前一个时钟的前一条指令的执行周期中重叠地
对算术加法器ADD即算术/逻辑单元所属于的数据通路的输入寄存
器执行来自寄存器R0和数据“#1234H”的读处理。在该情况下,单
纯地进行算术相加,从而AC特性(执行频率特性)得到改进。在常规
的流水线处理中,当增加流水线阶段的数量从而为从寄存器文件的读
周期排它地消耗单个阶段时也会在一定程序下改进该问题。然而,在
常规的流水线处理中,上述方法必然增加输出的延迟。相反,本发明
可在不增加延迟下解决该问题。
在本发明的指令组中,有可能在执行指令的前面说明准备信息。
从而,在诸如条件分支指令的分支指令中,在执行指令之前向控制单
元提供分支目的地信息。即,在常规助记码中,人一眼就可理解指令
组的整个含意,但是在该指令组出现之前不知道它。与之相反,在本
发明的指令组中,不能一眼看出指令组的整个含意,但是在执行指令
出现之前提供和该执行指令相关的信息。从而,由于在执行指令之前
分配分支目的地,有可能在分支目的地处取指令组,并且还有可能为
分支目的地处的执行指令做准备。
概言之,大多数当前的CPU/DSP通过把流水线处理移动到较晚
的阶段(时基上较晚)成功地提高处理速度。然而,一旦执行程序的转
移和CALL/RET问题显露出来。更具体地,由于事先未得到取地址
信息,上述问题实质上造成不能在流水线中解决的惩罚。当然,DSP
中采用的分支预测、延迟转移、高速转移缓冲器或高速循环处理技术
成功地明显减小这种惩罚。然而,当出现一些连续转移时这样的问题
再次显露出来,并且周知的事实是这些技术不能提供实质性的解决办
法。
另外,在常规技术中,不能事先得到相继指令所需要的寄存器
信息。这增加了用来提高流水线处理速度的转发处理或旁路处理的复
杂性。这样,现有技术对处理速度的提高造成硬件成本的明显增加。
如上面所描述,在常规指令组中,只是在译码指令组后才得到
分支目的地的地址信息,这使得难以实质性地解决执行条件转移下所
产生的代价。相反,在本发明的指令组中,因为事先得到分支目的地
信息,消除了执行条件转移产生的代价。另外,若硬件具有足够的容
量或足够大,还有可能取出分支目的地处的准备指令,从而对转移后
面的相继执行指令做准备。若转移条件不满足,仅仅浪费准备,而不
造成执行时间上的代价。
另外,因为在指令执行的同时或者之前知道相继指令所需的寄
存器信息,可在不增加硬件成本下提高处理速度。在本发明中,在编
译或汇编阶段期间事先通过软件处理成功地实现常规流水线处理中
在硬件上常规进行的一部分的处理。
在本发明的数据处理系统中,用于根据准备信息进行处理的第
二执行控制单元可以是一个可以通过晶体管之间的连接动态地控制
可变体系结构的单元,例如FPGA(现场可编程门阵列)。然而,动态
地改变诸如FPGA的硬件要消耗许多时间,并且为了减少该配置时
间需要附加的硬件,也有可能在具有二个面或更多面的RAM中存储
FPGA的再配置信息并且在后台执行再配置从而在明显缩短的时间
内动态改变体系结构。然而,为了能在几个时钟内进行再配置,需要
装配一个RAM并存储重构信息所有可能的组合。这实质上并不解决
FPGA的长再配置时间的经济问题。另外,由于FPGA用于能得到基
于门式硬件的有效映射的体系结构,迄今看来尚未解决FPGA的原
始问题即FPGA在实用层上的不良AC特性。
相反,在本发明中,独立地用和处理单元的执行时间(执行计时)
无关的准备信息定义处理单元的输入和/或输出接口。这样,在第二
执行单元中或在第二控制步骤中,可以和处理单元的执行计时无关地
独立地设置处理单元的输入和/或输出接口。从而,在具有多个处理
单元的数据处理系统中,通过第二执行控制单元或第二控制步骤,可
以和执行无关地通过这些处理单元控制数据通路的组合。从而,定义
至少一个处理单元,例如在第二字段中所记录的或所说明的该数据处
理系统中所包括的算术/逻辑单元,的接口指令变成数据流指示。这
使得能改进数据通路的独立性。结果是,在执行另一条指令程序时进
行数据流指示。另外,还提供一种允许把处于空间状态的控制单元或
数据处理系统的内部数据通路借给在另一个外部控制单元或数据处
理系统中执行的更为迫切的进程的体系结构。
另外,准备信息中还包括定义处理单元的处理内容和/或电路配
置的信息。从而,第二执行控制单元或者第二控制步骤指明处理单元
的处理内容(电路配置)。这样,可更灵活地配置数据通路。
另外,第二执行控制单元或第二控制步骤具有调度器的功能,
以便为控制各种各样的数据处理管理数据通路的组合,例如定义算术
/逻辑单元的接口以对取操作译码寄存器信息和定义另一个处理单元
的接口。例如,在按固定时间进行矩阵计算处理并且然后进行过滤处
理的情况下,在每个处理之前为这些处理提供数据处理系统的处理单
元之间的连接并且通过时间计数器顺序地进行每个处理。用另一个比
较电路或者外部事件检测器代替时间计数器能使更加复杂灵活的调
度成为可能。
可在每个处理单元中采用FPGA体系结构。然而,动态改变硬
件要长的时间,并且为缩短时间需要附加的硬件。这使得在执行应用
期间难以动态地控制处理单元内的硬件。若为了瞬时转换利用排式结
构设置多个RAM,几个时钟到几十个时钟数量级的转换会需要数量
相当大的排式结构。这样,基本上要求使FPGA中的每个宏单元可
独立编程并且可检测按基于程序的控制机改变的时间或计时。然而,
目前的FPGA不足以应付这样的结构。若FPGA能应付这样的结构,
为了动态地控制计时需要本发明中那样的新式指令控制体系结构。
因此,在本发明中,需要把包含着专用内部数据通路的电路单
元用作为处理单元。通过具有按样板准备的有些小型的处理单元并且
通过组合这些样板数据通路,可规定并进行数据流型处理。另外,根
据准备信息或准备指令处理单元的一部分内部数据通路变成是可选
择的,处理单元的处理内容变成是可改变的。结果是,可在短时间内
更灵活地配置硬件。
以下把带有适当的逻辑门或逻辑门组以及用输入/输出接口把各
内部数据通路和该逻辑门或这些门连接起来的处理单元称为样板,因
为该处理单元中提供的专用数据通路是象样板那样使用的。即,在该
处理单元中,有可能通过改变输入/输出到各逻辑门的数据的次序或
者通过改变逻辑门之间的连接或改变对逻辑门的选择,改变处理单元
的处理。所需要的只是事先对选择一部分的内部数据通路做好准备。
从而和需要在晶体管一级上对电路作出改变的FPGA相比,可在更
短的时间内改变处理。另外,使用事先安排的用于专用目的内部数据
通路减少了冗条电路元部件的数量并且提高晶体管的区域使用效率。
因此,安装密度变大,这导致更经济的生产。另外,排列数据通路以
适应高速处理还可得到优良的AC特性。从而,在本发明中,需要在
第二执行控制单元和第二控制步骤中使处理单元的至少一部分的内
部数据通路变成是可根据准备信息选用的。
还需要第二执行控制单元具有调度器的功能以管理处理单元的
一个接口,从而管理保持每个处理单元的该接口的进度表,其中该进
度表是根据准备信息设定的。
另外,需要根据准备信息指定由多个处理单元构成的处理块中
的输入和/或输出接口。由于借助单条指令改变多个处理单元的接口,
利用单条指令改变和该多个处理单元相关的数据通路。从而,需要在
第二执行控制单元或步骤中,可在处理块的单元中根据准备信息改变
处理单元的输入和/或输出接口。
此外,需要设置一个存储多个定义处理块中的输入和/或输出接
口的配置数据的存储器,并且需要能通过根据准备信息选择该存储器
中存储的多个配置数据之一改变处理块中的输入和/或输出接口。当
用数据流定义指令指定配置数据时,从不使用冗余指令的一个程序控
制多个处理单元的接口的改变。
另外,该具有作为处理单元的适用于通用处理的第一控制单元,
例如算术/逻辑单元,和适用于专用处理的第二控制单元,例如多个
具有专用内部数据通路的数据流处理单元,的数据处理系统变成一个
适用于要求高速性能和实时性能的处理,例如网络处理和图象处理,
的系统LSI。在本发明的指令组中,用来操作算术/逻辑单元的执行
指令在第一字段中说明,而定义算术/逻辑单元和/或数据流处理单元
的接口的准备信息在第二字段中说明。从而,通过本发明的指令组,
提供适用于控制上述系统LSI的程序产品。
常规地,处理复杂数据处理的唯一方法是准备专用电路并且利
用该电路实现专用指令,从而增加硬件成本。与此相反,在本发明的
指令组中,在第二字段中与执行指令无关地说明算术/逻辑单元的接
口以及要执行的处理内容,从而有可能在指令组中包括用于控制流水
线和/或控制数据通路的组合。从而,本发明提供在程序计数器附近
有效执行并行处理而且超同时地执行二个或多个对象以及超同时地
执行二个或多个子例程的手段。换言之,在常规的指令中不能同时进
行具有不同语境的数据处理和/或算法,因为这需要根据指向彼此远
离的点的远程程序计数器进行同时处理。相反,通过用本发明的指令
组适当地定义数据流,与各个程序计数器无关地进行这种处理。
因此,借助本发明的指令组,当事先从应用侧使数据通路有效
地改进并行处理性能时,事先通过软件利用第二字段配置或排列这些
数据通路。这样,通过软件根据需要利用指令级激励或执行所实现的
数据通路(数据流)。这些数据通路不仅应用于和某些专用目的对应的
数据处理并且还应用于激励状态机的目的,这样,数据通路的应用是
特别自由的。
另外,第二字段中的信息允许事先方便地生成用于相随指令的
准备周期。常规地,必须利用寄存器进行操作。然而,通过准备周期
的缓冲使得有可能使用存储器(单端口/双端口)或寄存器文件代替寄
存器。在指令组的第二字段中,可以说明指示处理单元中所包括的寄
存器之间的或者缓冲器和存储器之间的输入/输出的指令。从而,当
在第二执行控制单元中或在第二控制步骤中控制寄存器之间的或者
缓冲器和存储器之间的输入/输出时,和执行指令无关地进行对/从存
储器的输入/输出。
这增强了各个指令序列之间的关联,并且对避免执行之前的硬
件资源争用作出贡献,从而使得有可能快速适应多条指令的并行执行
要求和/或外部中断要求。另外,因为基本上可把存储器看成是寄存
器,可实现高速任务切换。还有可能采用预装入式高速缓冲器来代替
高速缓存,后者不能消除常规的先取惩罚。从而,可以实现确保100%
命中率和不产生惩罚的高速嵌入式系统。
换言之,通过允许把存储器当成是寄存器,有可能以高速处理
多个异步处理请求例如中断,从而有可能在特别灵活的方式下处理复
杂的数据处理和连续数据处理。此外,由于不必用长的时间存储和恢
复寄存器,高速管理任务切换变得非常容易。另外,由于完全消除掉
外部存储器和内部存储器间的存取速度的差异,高速缓存中的先取惩
罚问题变成有效地得到解决。因此,可以高速处理CALL/RET和中
断/IRET。这样,可以防止用来响应易于配置的事件的环境以及因这
样的事件造成的数据处理性能的下降。
另外,在第一或第二字段中,有可能说明多个执行指令或准备
指令例如VLIW,并且有可能第一或第二执行控制单元包括多个用来
独立处理多个分别在第一或第二字段中说明的独立执行指令或准备
指令的执行控制部分。从而,可得到性能的进一步改进。
通过实现把本发明的控制单元用作为核心或者外围电路的数据
处理系统,有可能提供一种更经济的具有上述优点并具有高处理速度
的数据处理系统。
具体实施方式
以下参照各附图更详细地说明本发明。图1示出依据本发明的
指令组的结构或格式(指令格式)。本发明中的指令组(DAD/DNA的指
令组)10包括二个字段:称为指令执行基本字段的第一字段(X字段)11
和能改进相继的指令执行的称为指令执行准备周期字段的第二字段
(附加字段或Y字段)12。指令执行基本字段(X字段)11规定诸如加/
减、“或”运算、“与”运算和比较的数据运算以及各种其它数据处
理的内容例如转移,并且规定存储运算结果的位置(目的地)。另外,
为了改进指令长度的使用效率,X字段11只包括供执行的指令的信
息。另一方面,附加字段(Y字段)12能够说明相同指令组的和X字段
11的执行指令无关的指令或多条指令(信息),并且例如分配着相继指
令的执行准备周期的信息。
现更详细地说明指令组10。X字段11具有一个说明对处理单元
例如算术/逻辑单元的指令操作或执行指令(执行ID)的执行指令字段
15,一个指示Y字段12有效/无效以及Y字段12中所指示的准备指
令(准备信息)的类型的字段(类型字段)16以及一个示出目的地寄存器
的字段17。如上面所说明,类型字段16的描述和Y字段12相关的,
并且可以和X字段11中的其它字段的描述无关地予以定义。
在Y字段12中,说明通过类型字段16定义的准备信息。Y字
段12中说明的准备信息是用来使某操作或其它数据处理准备好以供
执行的信息。在图2中示出其中的一些具体例子。首先,再次注意X
字段11中的类型字段16用于说明独立于或者无关于执行指令字段
15中的信息的信息。在Y字段12中,有可能说明一个地址信息字段
26,它说明地址ID(AID)21以及其使用意图是通过AID 21定义的地
址信息22,例如,一个地址(ADRS)和一个输入/输出地址
(ADRS.FROM/TO)。Y字段12中说明的该地址信息用于在寄存器之
间或者缓冲器和存储器(包括寄存器)之间读和写,并且通过Y字段中
的信息块传送例如DMA变成准备好。除输入/输出地址(R/W)之外,
还有可能把例如指示执行分支指令时的转移目的地(取地址,F)的地
址以及并行执行时起始地址(D)的信息在Y字段12中作为地址信息描
述。
在Y字段中,还有可能说明定义寄存器类型的指令的信息23,
例如,充当算述运算或其它逻辑运算指令(包括MOVE,存储器读/
写等)的源寄存器的寄存器(Reg)的被定义的立即值(imm)和/或信息。
换言之,有可能把Y字段12使用成用来定义相继执行指令的源的字
段27。
另外,在Y字段12中,有可能说明定义算术/逻辑单元(ALU)或
者其它数据处理单元的接口(源、目的地)、处理内容或功能以及/或者
它们的组合的信息25,例如,具有准备好的供使用的数据通路的样
板。换言之,把Y字段12用作为说明数据流规定指令25的字段28,
以定义供进行进专用数据处理的流水线式的重构数据通路(数据流或
数据通路)。在Y字段12中还有可能说明启动或执行数据流的信息以
及终止其的信息。从而,由Y字段12定义的可重构数据通路提供的
数据流使得能执行独立于从一个代码RAM取代码的程序计数器的进
程。
请注意图1和图2中示出的指令集的格式只是依据本发明的具
有二个独立指令字段的指令组的一个例子,并且本发明不受限于图1
和2示出的格式。例如,X和Y字段中一些字段的位置是不受限制
的。独立字段例如类型字段16的位置可替代地位于Y字段12的开
头。还有可能改变X字段11和Y字段12的次序。在该例子中,因
为Y字段12的信息包含在X字段11中,在译码说明执行指令的X
字段11时判断Y字段12中是否存在准备信息并判断准备信息的类
型。
在下面说明的例子中,分别在X字段11和Y字段12中说明执
行指令和准备指令。然而,通过指令格式,有可能提供在X或Y字
段中不说明指令(NOP被描述)的并且实际上只有X字段11或Y字段
12是有效的指令组。通过上述指令格式另一种指令组也是可能的,
也就是在同一指令组10的Y字段12中同时描述具有例如和X字段
11中说明的执行指令有关的寄存器信息的操作数的准备指令,即该
准备指令不是独立于X字段11中的执行指令的。可以在其中具有本
发明的X字段11和Y字段12彼此独立并且在同一指令组中彼此无
关的指令组的同一个程序中混合式地包括上面刚提到的指令组。为了
本发明的说明的清晰下面不说明具体例子,然而,既有X字段11和
Y字段12之中的有关说明彼此独立的指令组10并且又具有X字段
11和Y字段12之中的有关说明彼此相关的指令组的程序产品以及记
录这种程序的记录介质是在本发明的范围内的。
图3示出本发明的指令组10的一个例子。在j-1号指令组10,
T(j-1),中,X字段11的类型字段16指示在同一指令组的Y字段12
中说明32位的立即值(immediate)。指令组T(j-1)的Y字段12中把
“#00001234H”记录为立即值。在下一个j号指令组T(j)中,在X字
段11的执行指令字段15中说明“MOVE”,并且在目的地字段17
中指示寄存器R3。从而,当取j号指令组T(j)时,一控制单元的ALU
在寄存器R3中存储前一指令组T(j-1)中定义的立即值
“#00001234H”。
这样,在本实施例的指令组10中(以下把j号指令组10称为指
令组T(j)),通过前一个指令组T(j-1)对指令组T(j)中说明的执行指令
做准备。从而,不能单独地从指令组T(j)知道该控制单元的ALU所
执行的整个处理,而是要由二个指令组T(j-1)和T(j)唯一确定的。另
外,在指令组T(j-1)的执行指令字段15中,和指令组T(j-1)的Y字段
12无关地说明另一条用于由前一指令组的Y字段准备的另一进程的
执行指令。此外,在指令组T(j)的类型字段16和Y字段12中,说明
在相继指令组的执行指令字段中所说明的另一执行指令的另一准备
信息。
在本实施例,在紧前面的指令组T(j-1)的Y字段12中说明在指
令组T(j)的X字段11中说明的执行指令的准备信息(准备指令)。换
言之,在该例子中,准备指令等待时间对应于一个时钟。然而,可以
在紧前面的指令组之前的另一个指令组中说明准备信息。例如,在具
有多个ALU的控制单元的控制程序中或者对于后面说明的数据流控
制,不必在紧前面的指令组中说明准备指令。只要在具有和该准备指
令对应的执行指令的指令组被取出供执行之前持有或保持各ALU的
状态(环境或接口)或者准备指令所设置的样板的配置,可以在具有和
该准备指令对应的执行指令的指令组10数个指令周期之前执行的指
令组10的Y字段12中说明该准备指令。
图4示出在充当寄存器的寄存器文件或存储器中存储根据图3
的指令组的数据项的状态。一处理器取j-1号指令组T(j-1),并且根
据其Y字段12中的准备指令在该处理器的ALU的源寄存器DPO.R
中锁存立即值“#00001234H”。接着,该处理器取相继的j号指令组
T(j),并且在X字段11中的执行指令“MOVE”的执行周期里把该
锁存的中间值存储到缓冲器29b中。然后,在和存储器或寄存器文件
29a的寄存器R3对应的地址处保存缓冲器29b中的数据项。即使存
储目的地不是寄存器而是存储器,借助本实施例的指令组10,能够
通过根据该执行指令之前的准备信息进行的处理在执行指令周期中
装入或者存储数据。
图5示出具有能执行含有本实施例的指令组10的程序的控制单
元30的处理器(数据处理系统)38的示意结构。在代码ROM 39中保
存具有本实施例的指令组10的微代码或微程序18。控制单元30包
括一个取单元31和第一执行控制单元32,其中取单元31用于一旦
需要时根据一个程序计数器从代码ROM 39取该微程序的一个指令
组10,而第一执行控制单元32具有译码取出的指令组10的X字段
11从而确定或断言ALU 34的操作的功能以及选择目的地寄存器34d
从而锁存ALU 34中的逻辑运算结果的功能。
控制单元30还包括第二执行控制单元33,其具有根据X字段
11的类型字段16中的信息译码取出的指令组10的Y字段以及选择
算术处理单元(ALU)34的源寄存器组34s的功能。该第二执行控制单
元33能够独立于X字段的说明(类型字段16中的信息除外)解释Y字
段12中的指令或信息。若Y字段12中说明的信息定义数据流,第
二执行控制单元33还具有选择或设定ALU 34的源侧和目的地侧,
即确定ALU的接口,以及在预定时钟之间或者给出取消指令之前持
续地保持该状态的功能。另外,在Y字段12中的信息定义数据流的
情况下,第二执行控制单元33还确定ALU 34的操作(处理内容)并且
按预定的周期保持该状态。
相应地,第一执行控制单元32实现第一控制步骤,即,译码X
字段11中的执行指令并且根据该执行指令通过预先设置为准备好执
行该执行指令的操作或其它数据处理的处理单元来着手运算或其它
数据处理。另一方面,和第一执行控制单元32的执行内容以及由此
产生的第一控制步骤无关地,第二执行控制单元33完成第二控制步
骤,即,译码Y字段12中的准备信息和设置该处理单元的状态以便
准备好执行运算或其它数据处理。
控制单元30还包括这些执行控制单元32、33以及ALU 34的多
种组合,使得执行各种进程成为可能。结果是可以利用控制单元30
作为核心或外围电路配置出用于高速图象数据处理的DSP、能高速
进行数字处理的CPU和MPU等等。
图6至9示出由本实施例的控制单元30执行的一些样本程序。
图6中示出的样本程序41是按可由常规CPU或DSP执行而建立的
一个例子。该程序从一个开始于地址#START的表提取最大值,并且
在一旦检测出表示最后的数据的#END时终止。
图7中示出的程序42对应于和图6的过程相同的过程,该程序
转换成适用于用来执行本发明的指令组的控制单元30。程序42生成
为利用单个指令组执行二条指令。通过一个编释程序把图7中示出的
程序转换成本发明的指令组的执行程序以由控制部件30执行。
图8示出具有本发明的指令组10的编译后的程序43。以记录或
存储在ROM 39、RAM或其它适当的可由该数据处理系统读的记录
介质上的形式提供具有这样的指令组10的程序产品18。另外,还可
以分发嵌入在可在网络环境中交换的传输媒体中的程序产品43或
18。参照程序42容易理解在程序43中,在第一指令组10的Y字段
12中进行第二指令组10的执行指令15的准备。在该第一指令组10
中,类型字段16指示在Y字段12中把立即值说明是准备信息。第
二执行控制单元23译码Y字段12并且把该立即值提供给ALU的源
高速缓存或寄存器组。从而,通过第二指令组10,在已为这些执行
指令做好准备的ALU34上执行各执行指令15。即,在执行第二指令
组10的时刻,简单地对目的地字段17中定义的寄存器组执行执行指
令字段15中的指令“MOVE”。
类似地,在第二指令组10的Y字段12中,把设置各源寄存器
的指令说明成是相随的第三指令组10的执行指令字段15中的执行指
令“MOVE”和“ADD”的准备信息。类型字段16定义Y字段12
中说明的寄存器和立即值。
在程序43中,如上面所述那样译码第三和随后的指令组10。在
第三指令组10的类型字段16和Y字段12中说明随后的第四指令组
10的各执行指令15的准备信息。第四指令组10的执行指令是比较
(CMP)和条件转移(JCC)。从而,通过第三指令组10的类型字段16
和Y字段12,在随后的执行指令15中要比较的寄存器R1、立即数
据#END(#FF FF FF FF H)以及分支目的地的地址#LNEXT(#00 000
500 H)说明为是准备信息。因此,一旦执行第四指令组10的各执行
指令15,由于已对按比较电路运行的算术处理电路34设置了输入数
据,在该执行周期中获得比较结果。另外,已为取地址寄存器设置转
移地址。从而,通过执行指令15的条件转移,在该执行周期中根据
该比较结果取转移地址处的另一个指令组10。
通过第四指令组10的类型字段16和Y字段12,说明有关要比
较的寄存器(R0的R1)和分支目的地地址#LOOP(#0 000 0 496H)的信
息以作为随后的第五指令组10的执行指令15,即比较(CMP)和条件
转移(JCC),的准备信息。从而,如第四指令组,一旦执行第五指令
组10,由于算术处理单元34的接口已经准备好执行X字段11中所
说明的CMP和JCC,在该执行周期进行该比较和条件转移。
在第五指令组10的Y字段12中,说明源寄存器信息(R1)和转移
目的地#LOOP的地址以作为随后的第六指令组10的各执行指令,
即移动(MOVE)和转移(JMP),的准备信息。从而,在执行第六指令
组10时,在该执行周期中把数据项存储到目的地寄存器RO并且从
转移目的地的地址#LOOP取另一条指令。
这样,依据本发明的指令组,执行指令是和说明用于执行源执
行指令的接口和/或其它信息的准备指令分开的。另外,准备指令是
在在执行指令之前取出的指令组中说明的。因此,通过每个指令组中
说明的执行指令,由于已对ALU 34源侧读出或分配数据,简单地或
只执行和算术运算对应的执行。从而,得到出色的AC特性和改进的
执行频率特性。另外,尽管执行指令的操作计时和常规流水线的计时
不同,但如常规流水线那样,诸如指令取、寄存器译码和其它处理是
以分阶段的方式执行的。从而,吞吐量也得到改进。
另外,该实施例的程序能在单个指令组中说明二条指令。从而,
通过象VLIW在程序计数器附近并行执行多条指令,处理速度得到
进一步改进。
另外,在该程序43中,在第四指令组的执行指令字段15中说明
条件转移,并且在前面的第三指令组的Y字段12中说明源分支目的
地的地址。从而,一旦执行第四指令组或者执行之前,对取寄存器设
置该分支目的地地址。这样,当满足转移条件时,无任何惩罚地取和
/或执行分支目的地处的指令组。也可能预取分支目的地处的指令,
从而可以事先对执行分支目的地处的执行指令做出准备。因此,甚至
在损失一个时钟下执行分支目的地处的指令。这样,在逐个时钟的基
础上准确地定义处理。
图9示出本发明的程序44,其利用本发明的指令组10的Y字段
12定义数据流,以执行上面根据该数据流说明的相同过程,在该程
序44中说明的数据流指定指令中,“DFLWI”是用于初始化数据流
的指令,而“DFLWC”是定义形成该数据流(数据通路)的算术处理
单元34的连接信息(接口信息)和处理内容(功能)的指令。“DFLWT”
是定义数据流的终止条件的指令。结束处的指令“DFLWS”用于对
所定义的数据流输入数据和激励该数据通路的处理。在Y字段12中
作为准备信息说明这些数据流指定指令25并且由第二执行控制单元
33译码,从而通过处理单元34设置用于进行这些数据处理的结构(配
置)。
为执行图9中示出的程序44时,第二执行控制单元按第二控制
步骤和该处理单元的执行时间或计时无关地设置该处理单元的输入
和/或输出接口,并且根据该程序中对数据流的规定定义该处理单元
中要执行的处理的内容。另外,第二执行控制单元33还充当调度器
36以在第二控制步骤中管理保持有关处理单元的接口的进度表。
从而,如图10中所示,充当调度器36的第二执行控制单元33
定义三个算术处理单元34的有关接口(输入/输出)以及处理的内容或
功能,并且在满足结束条件之前保持这些状态和/或配置。这样,通
过利用这些算术处理单元34配置的数据流或数据通路,和程序计数
器无关按顺序地进行和图6中所示相同的处理。换言之,通过指定数
据流,在由三个算术处理单元34执行之前在控制单元30中设置用于
该处理的专用电路。从而,在和程序计数器的控制无关下执行得到最
大值的处理。若充当DP1.SUB的ALU 34判定DP1.R1和#END对应,
该数据流结束。
这样,如图9中所示,该数据流的定义能在不使用任何转移指
令下进行和图6或7中示出的程序相同的处理。从而,尽管控制单元
30是通用的,它有效地并且速度特别高地进行专用的处理,好象一
个具有用于该专用处理的专用电路的控制单元那样。
依据本发明的指令组和控制电路有可能在控制单元中设置用于
各种处理的数据流或超数据流。还可把这些数据流应用为样板以执行
其它处理或程序。这意味着在任何时刻利用软件修改硬件以配置为适
应于特定的数据处理,而且这种配置是通过其它程序或硬件实现的。
并且有可能通过软件在控制单元中设立多个数据流,而且可定义多命
令流。这明显有利于多个处理的并行执行,而且使编程容易控制它们
的各种执行变型。
图11是一个按系统LSI 50设置的数据处理系统的示意结构,其
具有多个可通过本发明的包括X字段11和Y字段12的指令组10定
义数据流的处理单元(样板)。该系统LSI 50包括一个用于进行数据处
理的处理器部分51,一个存储用来控制该处理器区51中的处理的程
序18的代码RAM 52,以及一个存储其它控制信息或处理的数据的
数据RAM 53,而且RAM 53成为一个暂时工作存储器。处理器部分
51包括一个用于取程序码的取单元(FU)55、一个用于进行通用处理
的通用数据处理单元(多用途ALU,第一控制单元)56,以及一个能在
数据流方式下处理数据的数据流处理单元(DFU,第二控制单元)57。
本实施例的LSI 50译码在单个指令组10中包括一组X字段11
和Y字段12的程序码并且相应地执行处理。FU 55包括一个用于存
储取出的指令组10的X字段11中的指令的取寄存器(FR(X))61x,以
及一个用于存储相应的Y字段12中的指令的取寄存器(FR(Y))61y。
FU 55还包括一个用于译码FR(X)61x中锁存的指令的X译码器62x,
和一个用于译码FR(Y)61y中锁存的指令的Y译码器62y。FU 55还
包括一个寄存器(PC)63,用于根据这些译码器62x和62的译码结果
存储相继指令组的地址,并且PC 63充当程序计数器。任何时刻从代
码RAM 52中存储的程序的预定地址取出后续指令组。
在该LSI 50中,X译码器62x充当前面提到的第一执行单元32。
从而,X译码器62x根据指令组10的X字段11中所说明的执行指令
进行本发明的第一控制步骤。Y译码器62y充当第二执行控制单元。
从而,Y译码器62y根据指令组10的Y字段12中所说明的准备信息
进行本发明的第二控制步骤。这样,在该数据处理系统的控制中,在
取单元55中进行取本发明的数据集的步骤;在X译码器62x中,进
行译码第一字段中的执行指令以及通过已经预置的处理单元着手该
执行指令的运算或数据处理的第一控制步骤从而准备好执行该执行
指令的运算或数据处理;在Y译码器62y中,和第一控制步骤无关
地进行译码第二字段中的准备信息以及设定处理单元的状态的第二
控制步骤从而准备好执行运算或数据处理。
多用途ALU 56包括会同图5说明的算术单元(ALU)34和用于存
储ALU 34的输入/输出数据的寄存器组35。倘若FU55中译码的指令
是ALU 34的执行指令和/或准备信息,相应地对多用途ALU 56提供
X译码器62x的译码信号φx和Y译码器62y的译码信号φy,从而如
上面解释那样在ALU 34中进行所说明的处理。
DFU 57具有一个样板部分72,在样板部分72中设置着多个用
于为各种处理配置多个数据流或伪数据流中之一的样板71。如上面
会同图9和10说明那样,每个样板71是一个具有专用数据通路或数
据流的功能的处理单元(处理电路),例如算术处理单元(ALU)。当Y
译码器62y译码Y字段12中的按准备信息说明的数据流指定指令25
时,根据信号φy设置各样板71,即DFU57的各处理单元,的有关接
口和处理内容或功能。
因此,有可能通过Y字段12中说明的数据流指定符25改变各
样板71的有关连接和改变各样板71中的处理。这样,通过这些样板
71的组合,在样板区72中借助程序18灵活地配置适用于特定数据
处理的数据通路。从而,在处理器51中提供用于该特定处理的专用
电路,在其中和程序计数器无关地进行处理。换言之,由于通过软件
数据流指定指令25可改变样板71的有关输入/输出以及样板71中的
处理,在任何时刻可修改或重构处理器51的硬件成为适应于该特定
数据处理的配置。
如图12(a)中所示,为了通过该处理器51的DFU 57在输入数据
φin上进行某处理以得到输出数据φout,有可能通过数据流指定符25
设置各样板71的有关接口,从而利用图12(b)中所示的彼此串联连接
的样板1-1、1-2和1-3进行数据处理。类似地,对于样板块72中的
其它样板,有可能设定它们各自的接口,从而通过多个样板的适当组
合配置数据通路或数据流。从而,借助程序18在任何时间在样板部
分72中配置多个适用于处理输入数据φin的专用或特定处理单元或
者专用数据通路73。
另一方面,在改变输入数据φin上进行的处理的情况下,有可能
通过数据流指定指令25改变样板71之间的连接,如图12(C)中所示。
Y译码器62y译码数据流指定指令25从而改变相应样板71的各个接
口。Y译码器62y的这种控制处理(第二控制步骤)使得能在样板段72
中利用彼此串联连接的样板1-1、2-n和m-n配置适应于其它不同处
理的一个或多个数据通路73。
另外,还可以把由单个样板71或者多个样板71的组合构成的处
理单元分配给另一个并行执行的处理或者程序。在通过适当总线多个
处理器51彼此连接的情况下,还有可能配置一个具有为一个主要通
过另一个处理器51进行的数据处理组合的各样板71的串(数据通
路)73,从而有可能特别有效地使用数据处理资源,即,各个样板71。
另外,和意图甚至要复盖简单的逻辑门例如“和”以及“或”
的实现的FPGA不同,本发明的样板71是高层的其中包括某基本上
具有ALU或其它逻辑门功能的专用数据通路的数据处理单元,通过
数据流指定指令25定义或重新定义样板71各自的接口从而改变样板
71的组合。这样,配置较大的适应于所需特定处理的数据通路。同
时,还可以通过在样板71内部改变ALU或其它逻辑门等的连接的数
据流指定指令25定义处理内容或者各样板71中自身进行的处理。即,
通过选择样板内的一部分的内部数据通路还定义和改变样板71中进
行的处理内容。
从而,在DFU 57的硬件具有多个按本例设置的可为特定数据处
理再配置的样板71的情况中,不需要象在FPGA中那样再变换整个
芯片或者甚至在有限逻辑块的基础上再变换。替代地,通过改换各样
板71中或样板段72中先前设置的数据通路或者通过选择一部分的数
据通路,利用事先准备的ALU或逻辑门实现所需的数据通路。换言
之,在样板71内部,只是在最少需要下重新设置或重构逻辑门的连
接,并且甚至在样板71之间只是在最少需要下重新设置或重构连接。
这使得能在非常短和有限的时间内(以时钟脉冲为单元)把硬件改变
到适应于特定数据处理的配置。
由于FPGA不包括逻辑门,它们是特别通用的。但是,FPGA包
括大量对于形成实现特定应用的逻辑电路非必要的接线,并且这种冗
余妨碍信号通路长度的减少。和专用于要执行的应用的ASIC相比,
FPGA占据更大的面积并且AC特性下降。相反,采用本发明的事先
包含着逻辑门的各样板71的处理器51能够防止FPGA中造成的大的
浪费面积并且还能改进AC特性。从而,本实施例中的基于各样板
71的数据处理单元57是能通过程序改变硬件的可重构处理器。这样,
在本发明中,和采用FPGA的处理器相比,有可能提供软件灵活性
更高并且硬件速度性能更高的数据处理系统。
事先在这些样板71中包含适当的逻辑门,从而,以适当密度实
现执行特定应用所需的逻辑门。因此,使用各样板71的数据处理单
元是经济的。在用FPGA构成数据处理器的情况中,必须考虑频繁
地下载用于重构的程序以便补偿封装密度的减少。这种下载所需的时
间还降低处理速度。相反,由于使用样板71的处理器51具有高封装
密度,对密度降低所需做出的补偿减少,并且不那么需要对硬件的频
繁重构。另外,以块为单位控制硬件的重构。在这些方面下,有可能
提供基于FPGA可重构处理器难以得到的能通过软件重构硬件的小
型、高速数据处理系统。
另外,图11中示出的DFU 57包括一个配置寄存器(CREG)75和
一个配置RAM(CRAM)76,CREG 75能集体地定义或设定样板段72
中设置的各样板71的接口和处理内容(以下称为配置数据),CRAM 76
存储多个要对CREG 75设置的配置数据Ci(以下,i表示一适当的整
数)。把如“DFSET Ci”的指令提供为数据流指定符25的指令。当Y
译码器62y译码该指令时,把存储在CRAM 76里的配置数据Ci之
中的所需配置数据装入到CREG 75中。结果是,集体地改变样板段
72中设置的多个样板71的配置。替代地,可以以由多个样板71构
成的处理块为基础改变配置。
当Y译码器62y译码诸如上面解释的DFLWI或DFLWC的数据
流指定指令25时,也有可能设定或改变单个样板71的配置。另外,
如上面提到的那样,因为能用单条指令改变多个需要大量信息的样板
71的配置,指令效率得到改进并且减少重物消耗的时间。
DFU 57还包括一个控制器77,用于在一个块一个块的基础上把
配置数据下载到CRAM 76中。另外,把“DFLOAD BCi”设置为一
条数据流指定符25指令。当Y译码器62y译码该指令时,和事先在
数据RAM 53等中准备的大量配置数据78一起把一些用于正在进行
的处理或将来可能出现的处理的配置数据Ci预先下载到配置存储
器,即,CRAM 76。通过这种结构,可把小容量、高速辅助存储器
等应用为CRAM 76并且硬件变为灵活地和更快地重构。
图13示出样板71的一个例子。该样板71能够通过DFU 57中
准备的数据流RAM(DFRAM)79和另一个样板71交换数据。另一个
样板71的处理结果通过I/O接口81输入到输入高速缓存82a至82d,
然后被处理并输出到输出高速缓存83a至83d。该样板71具有一条
能够对分别存储在输入高速缓存82a至82d的A、B、C、D进行下
述处理并且把运算结果存储在输出高速缓存83b和把比较结果存储
在输出高速缓存83c中的数据通路88。通过I/O接口81和DFRAM 79
把样板71的处理结果再次输出到另一个样板。
IF A=?
THEN(C+B)=D
ELSE(C-B)=D …(A)
该样板具有它自己的配置寄存器84。该样板71中的寄存器84
中存储的数据控制多个选择器89,以选择输入到诸如控制部分85、
加法器86和比较器87的信号。从而,通过改变样板71中的配置寄
存器84里的数据,有可能进行另一个使用数据通路88的一部分的处
理。例如,在该样板71中,在不必利用控制部分85下还提供下述处
理。
(B+C)=D
(B-C)=D …(B)
类似地,通过改变配置寄存器86中的数据,可以使用数据通路
88的一部分,从而把样板71用作为使用控制部分85的条件判定电
路、使用加法器86的加/减电路、或使用比较器87的比较电路。这
些逻辑门是从样板71中包含的专用电路形成的,从而在电路结构和
处理时间上不存在浪费部分。另外,通过由配置寄存器84控制的接
口81有可能改变对/从样板71的输入和输出数据配置。这样,样板
71全部或部分地变为用于所需数据处理的数据流。
样板71还能根据来自上述CREG 75的数据或者来自FU 55的Y
译码器(YDEC)62y的数据重写它自己的配置寄存器84中的数据,从
而通过来自Y译码器62y的信号控制其中的选择。即,根据数据流
指定指令25,通过Y译码器62y或者Y译码器62y进行的第二控制
步骤控制该样板71的配置。从而,硬件的二种重构是可能的,一种
是按照CRAM 76中存储的配置数据Ci和别的样板一起根据DFSET
指令等改变样板71的硬件配置;另一种是通过由数据流指定指令25
设定的配置寄存器84中的数据选择样板71的专用数据通路88的一
部分。
从而,通过数据流指定指令或者单独地或者成组地或多个块地
改变样板71的配置,由此灵活地重构处理器51的数据通路。
样板71的结构不受限于上面的实施例。有可能设置适当类型和
数量的具有逻辑门的样板,以便为实现多种数据处理,进行组合、选
择一部分的内部数据通路和改变样板71的组合。更具体地,在本发
明中,按几种类型的样板设置有点小型的数据通路。这样,通过指定
这些数据通路的组合实现数据流类型的处理,从而在改进的性能状态
下进行这些特定的处理。另外,利用处理器51的多用途ALU 56的
功能实现这些样板不能管理的任何处理。此外,在该处理器的多用途
ALU 56中,通过指令组10的Y字段10中说明的准备指令使转移等
产生的惩罚为最小。这样,含有本实施例51的系统LSI 50使得可能
提供一种高性能的LSI,该LSI能如程序描述处理那样灵活地改变硬
件并且它适用于高速和实时处理。该LSI还灵活地应付应用中的改
变,技术要求中的改变不会造成处理性能的下降。
当在开发和设计系统LSI 50时知道该系统LSI 50要执行的应用
的概要的情况下,有可能主要利用具有适用于该应用的处理的配置的
样板配置样板段52。结果是,可以利用数据流类型处理进行数量增
加的数据处理,从而改进处理性能。在通过系统LSI 50提供通用LSI
的情况下,有可能主要利用适应于通用应用中经常出现的处理,例如
浮点运算、乘法和除法、图象处理等,的样板配置样板段72。
这样,依据本发明的指令组和数据处理系统使得提供这样一种
LSI成为可能,其具有进行各种处理的数据流或伪数据流并且可以通
过软件在任何时刻把执行数据流的硬件改变到适用于特定数据处理
的配置。另外,可以在诸如和具有X字段11和Y字段12的指令组
10无关的处理器的控制单元或数据处理系统中包含前面提及的通过
样板的组合,即DFU 52或样板区72,进行数据流类型处理的体系结
构。从而,有可能提供一种和FPGA相比能高速进行处理、在更短
时间内改变硬件并具有更佳AC特性的数据处理系统。
还有可能配置一种包括DFU 57或样板区72并包括常规通用嵌
入式处理器,即利用助记码操作的处理器,的系统LSI。在这种情况
下,任何样板71不能应付的处理可由通用处理器进行。然而如上面
所说明,常规处理器具有诸如转移代价和浪费用于算术处理的寄存器
的准备时钟的问题。因此,需要应用本实施例的能够译码供执行的具
有X字段和Y字段的指令组10的处理器51。
另外,借助本实施例的处理器51和指令组10,在执行数据处理
之前和通过Y字段12的另一个处理并行地设置或改变DFU 57的配
置。这在程序效率和处理效率上是有好处的。还通过在单个指令组中
说明常规助记指令码和数据流类型指令码改进程序效率。本实施例的
指令组10的Y字段的功能不受限于如上面所解释那样地说明数据流
类型指令代码。
依据本发明的处理器能在执行之前通过Y字段12改变物理数据
通路或结构。相反,在常规处理器中,仅仅通过共享存储器把多个多
处理器彼此连接起来。从而,即使存在空间状态下的处理器,不能从
外部使用该处理器的内部数据处理单元。在依据本发明的数据处理器
中,设定一适当的数据流能使其它控制单元或数据处理器使用该处理
器中未使用的硬件。
作为辅助效果,在本发明的控制单元中以及使用它的处理器中,
指令执行序列的效率得到改进,并且确保内部数据通路的独立性和自
由程度(可使用性)的改进,从而,即使同时提供用于具有完全不同特
性的环境的处理的指令序列,只要可得到执行硬件便成功地执行各处
理。
现在,硬件和软件的协调设计的优点变成达到一定高度,并且
本发明的指令组和控制单元的组合成为如何在允许的硬件成本内以
有效和经济的方式实现用户要求的算法和/或数据处理的一种答案。
例如,根据反映已经实现的数据通路的配置的和本发明的指令组有关
的数据和/或信息(先前的DAP/DNA)并且根据为执行处理随后添加的
硬件和/或序列,和用软件描述的新数据通路(数据流)对应的新组合类
型变成用于该处理的最优解决办法并且改进性能同时又使硬件成本
为最小。
在常规硬件中,不太会把配置划分到元部件。从而,不存在组
合元部件的灵活性,改进性能的主要解决办法是对信号增加新的数据
通路。这样,常规体系结构难以根据积累某些改进性能的信息或者增
添实际中为实现所需要的性能改进而实施的硬件信息数值地予以评
估,从而使得建立数据库是困难的。相反,依据本发明,由于把小型
数据通路提供成样板并且指定数据通路的组合以进行数据流类型处
理,容易在特别细心的改进性能的方式下评估硬件和软件之间的协
调。还有可能累积硬件和软件间的折衷信息,从而,能把各种数据通
路组合的可能性紧密地和对处理性能的贡献程序联系起来。这使得有
可能把积累和成本、所需的处理信息以及处理执行的性能有关的评估
数据紧密地和硬件和软件二者关联起来。另外,由于是在不断开主处
理或通用处理的执行下实现数据通路的,可从过去积累的有关硬件以
及本发明的指令组的数据预测增加性能要求的期望结果。
从而,本发明不仅对明显地减少目前的设计和技术要求成本而
且还对借助添加新硬件和新软件之间的最小折衷完善下一代新设计
做出贡献。此外,和处理类型相对应,便利了把内部数据通路借到外
部,从而硬件资源共享成为可能。因此,通过本发明的多个模块
(DAP/DNA模块)的并行处理变成用来实现小型硬件的最有用方面中
的一个方面。
请注意,上面提及的数据处理系统和指令组是本发明的实施例
之一,从而,在数据处理器中,也有可能使用外部RAM或ROM代
替代码RAM或数据RAM等,并且还利用外部DRAM或SRAM等
提供接口。另外还具有作为数据处理器例如系统LSI的周知功能,
例如用于连接其它外部部件的I/O接口,的数据处理器也包括在本发
明的范围内。因此,通过后面的权利要求书的各条款理解和领会本发
明,并且后面的权利要求书复盖的所有修改都在本发明的范围内。
在通过本发明的指令组和数据处理系统提供的新编程环境中,
除了前面所描述的之外有可能提供其它专用指令。可能的例子包括:
“XFORK”,用于除了现行程序之外还同时激励一个或多个对象(程
序)并且支持指令级上的并行处理激励;“XSYNK”,用于同步对象
(程序);“XPIPE”,用于指示并行处理之间的流水线连接;以及
“XSWITCH”,用于终止现行对象并且激励相继的对象。
如前面已说明的那样,包括着本发明的指令组、利用这些指令
组编程以及能执行这些指令组的数据处理系统的本技术是基于重大
改进指令组结构或配置的原理的,从而解决现有技术难以对付的已说
明过的问题并且在性能上达到明显的改进。
在本发明中,从和常规方式完全不同的角度评述和构建指令组
的结构,从而本发明的指令组特别有效地解决许多对于现有技术看起
来特别难以解决的问题。实际上,在现有技术中,根据特别标准的传
统预想方式利用硬件实现指令组的结构和指令提供(获取)方法,从而
在基本观念上阻碍这些问题的解决。常规的利用大型、复杂硬件配置
解决所有问题的试图在开发对当今社会作出贡献的技术中造成明显
地提高成本。在基于该技术配置的各种信息处理产品中成本也被提
高。在本发明中,提供应是本来的并且对应用要求赋予优先级的指令
组。从而,本发明提供的手段不仅能改善产品性能效率并且更象能得
到产品的高开发效率和质量保证。
另外,依据本发明,可以用资源,即样板和使用这些样板的指
令组,积累能改进性能的数据通路(数据流)。这样,任何时候根据随
后添加的硬件配置信息以及进行数据处理的序列信息更新积累的数
据通路变为可能,因此容易得到最优答案。从而,通过本发明,将以
更加希望的方式进行按惯例指出的应用间的资源共享、硬件中的资源
共享以及为改善性能的硬件投资,而且,本发明可以对构建网络社会
作为技术基础做出重大贡献。