在dsp存储器中访问复数向量的方法和装置的制作方法

文档序号:6419148阅读:211来源:国知局
专利名称:在dsp存储器中访问复数向量的方法和装置的制作方法
技术领域
本发明是关于处理器存储寻址和存储地址产生的方法,特别是存储在一个数字信号处理器(DSP)存储器中的复数向量的访问方法。


图1示出典型的现有技术的处理器,例如数字信号处理器,的地址产生单元(AGU)102。术语“处理器”在本文中指的是任何数据处理器文件;例如数字信号处理器,但不限于此。AGU102通常包含用于存储数据访问的寄存器组。典型的寄存器组每个包含三个寄存器1、一个地址寄存器(指针)104,用Rn来代表;2、一个偏移寄存器106,用Nn来代表;和3、一个缓冲长度寄存器108,用Mn来代表。
其中n=1…k是组的下标,而K是在处理器地址产生单元中存在的组数。
术语“阵列(Array)”在本文中代表在处理器的存储器中其位置的任何多元性,以至于访问它的每个位置需要一个相对于固定基地址的变址,其中变址是一个常数的整倍数。术语“向量(Vector)”在本文中代表存储在这标一个阵列中的数据值的任何多元性;而术语“分量(Component)”在本文中代表一个向量的任何数据值。术语“复数(Complex number)”在本文中代表任何成对的数据值;此数据值在本文中表示成“第一部分(First part)”和“第二部分(second part)”;包括在通常数学意义上的由“实数部分”和“虚数部分”所组成的一对数,但不限于此。术语“复数向量(Complex vector)”在本文中代表相同数量的分量的任何成对的向量。术语“第一阵列(First array)”在本文中代表在处理器中的任何存储阵列,它包含一个复数向量的一个向量对中的第一部分(或者向量)。而术语“第二阵列(Second array)”在本文中代表在处理器中的任何存储阵列,它包含一个复数向量的一个向量对中的第二部分(或者向量)。一个复数向量可以是由在通常数学意义上的复数的向量组成;其复数向量的实数存在第一阵列里,而复数向量的虚数存在第二阵列里。可以有另一种选择,一个复数向量可以由通常数学意义上的复数的向量组成;其复数向量的实数存在第二阵列里,而复数向量的虚数存在第一阵列里。更进一步的变化是,根据本发明一个复数向量可以由任意多个数据值的二个向量来组成,它们不需要代表在通常数学意义下的复数。此外,关于处理器存储器中的术语“存取(Access)”和“访问(Accessing)”在本文中代表存储器中以及把存在存储器中的数值取出。
当工作在复数向量时,第一阵列和第二阵列通常是放在存储器中的不同地址,或者在不同的存储空间,这个依处理器的存储器体系结构而定。为了用间接寻址方式访问一个复数向量,需要二个不同的地址寄存器;一个地址寄存器用于第一阵列,而另一个用于第二阵列。这种方法的一个限制是地址寄存器在数字信号处理器中是很昂贵的资源。当第一阵列和第二阵列处在同一个存储器时,可以用单个的地址寄存器和一个偏移寄存器来进行存取。这个方法可以使用,如果地址寄存器本身指向第一阵列,而偏移寄存器包含第一阵列和第二阵列间的偏移。在此情况下,可以用地址寄存器(Rn)的间接寻址来访问第一阵列,而用地址寄存器和它的偏移寄存器(也就是Rn+Nn)的变址间接寻址方式来访问第二阵列。然而,在位反(bit-reversal)和按步后修改(post-modification-by-step)寻址方式中偏移寄存器已经使用,不可能用于变址间接寻址方式中。因此,当使用变址间接寻址方式时,为了存取复数向量需要二个地址寄存器。这种情形出现在快速富利叶变换(FFT)的算法中,在那里使用了位反的寻址方式;出现在复杂信号的简化中,在那里使用了按步后修改寻址方式,等等。(一个这个领域的综述和已存在的数字信号处理器体系结构的描述可在“数字信号处理器购买者指南”中找到,该书由伯克利设计技术公司(Berkeley Design TechnologyInc.)1995出版。
大多数现有的数字信号修理器没有解决这个存储器访问的问题;因此,为访问一个复数向量,当偏移寄存器已在使用时,需要二个不同的地址寄存器。一个已存在的解决办法示于图2中,它用于摩托罗拉的DSP56×××系列处理器中。这个方法使用二个数据存储器一个X-存储器202和一个Y-存储器204,它们有相同的地址空间206。它也要求一个专用的汇编语言语法(未示于图2中)和一个地址产生单元(如示于图1中)。这种体系结构的完整描述见于DSP56000 24位数字信号处理器家族手册中,由摩托罗拉公司(半导体产品部,DSP分部,德克萨斯州,奥斯汀)出版;它包含着本文所要阐述的参考材料。在这个现有技术的解决方案中,地址产生单元的体系结构是这样的地址寄存器208(R0)指向二个的相同地址,这二者是X-存储器202和Y-存储器。因此,定位在不同存储空间但是在相同位置的复数向量的第一阵列和第二阵列可以单独用地址寄存器208(R0)同时进行访问。如同示于图2,地址寄存器指向地址0X0002,但它与地址空间并没有具体的关系。指向特定的存储空间是由汇编语言操作码来做的。例如,如果第一阵列定位在X-存储器202,第二阵列定位在Y-存储器204;而第一阵列储存着复数向量的实数部分,第二阵列储存着复数向量的虚数部分;那以把地址0X0002的实数部分传送到寄存器A和把虚数部分传送到寄存器B,可以用下面的汇编码来进行move X(R0),A;move Y(R0),B;这个解决方案有二个问题首先,向量的二个部分(分别指向第一阵列和第二阵列),必须定位在不同存储器的同一个位置。这可以导致存储器的应用效率不高(在存储器中有空隙),同时使它难于完成当需要时存储器的再定位。例如,如果需要对在X-存储器202的第一阵列再定位,那么也需要对在Y-存储器的第二阵列进行再定位,以保持二者在同一地址。
被广泛地认识到并大有好处的是有一种访问在处理器存储器中复数向量的有效方法,它只要求单个地址寄存器,不要求使用偏移寄存器和不要求多个存储器分享同一个地址空间。本发明满足这个目的。
本发明是一种方法和装置,用于有效地产生存储地址,和用单一的地址寄存器(指示器)用任何寻址访问在处理器存储器中的复数向量。这是用在地址产生单元中引入新的寄存器来做到的;这个新的寄存器称为“固定位移寄存器(fixed Displacement Register)”用Rf来代表。这个固定位移寄存器只用于变址间接寻址方式,在这种寻址中它提供一个存储器的偏移。用这个方法,可能有按步后增量和不用对地址产生单元再编程而用一个相同的地址寄存器去访问二个不同的阵列。
这样,本发明成功地解决了现在已知的配置和方法的缺点。首先,本发明用一个地址产生单元的寄存器组在任何种寻址方式下能够访问复数向量。其次,本发明没有对一个复数向量(例如其第一阵列和第二阵列)的实数部分和虚数部分的存储分配提出任何限制,也没对存储空间和地址提出任何限制。
因此,根据本发明,有一个地址产生单元用处理器来访问复数向量和存储地址;这个地址产生单元包括(a)一个地址寄存器,(b)一个偏移寄存器,(c)使变址间接寻址有效的方法,(d)一个固定位移寄存器,(e)使固定位移寻址方式有效的方法,此寻址方式状态是可选择的,它可以从由一个使能状态和一个非使能状态组成的组中选择状态,(f)一个固定位移配置位,用于指明固定位移方式的状态。
更进一步,本发明也提供一种在处理器中实现固定位移寻址方式的方法,该处理器有一个地址寄存器,一个固定位移寄存器,一个固定位移配置位;该处理器同时有多种寻址方式包括变址间接寻址方式。这个处理器在执行一条现行指令时,根据本方法包括下述步骤(a)寄存一个基地址到地址寄存器、一个固定位移量到固定位移寄存器。(b)检查用于变址间接寻址方式的现行指令;(c)检查固定位移配置位;和(d)产生一个存储地址等于基地址和固定位移量之和,当且仅当现行指令包含变址间接寻址方式和固定位移配置位被设置。
在本文中,本发明用举例方式参考附图来加以说明,它们是图1示出一个现有技术的数字信号处理器的地址产生单元。
图2示出现有技术的数字信号处理的存储配置。
图3示出根据本发明的数字信号处理器中地址产生单元的新的特性。
图4是一个固定移位地址产生算法的流程图。
图5示出存储器状态的一个例子。
图6说明二个数据存储空间的体系结构。
根据本发明的一个方法和装置的原理和操作,可以用附图和相应的说明来解释,本发明的装置地址产生单元的重要部分示于图3中,本发明的方法的步骤在图4的流程图中说明,它们是在数字信号处理器或其他根据本发明的处理器中执行的。这些步骤实现固定位移方式,根据本发明它是一种新的处理器方式。
如在图3所说明的,首先需要提供一定的附加的硬件能力。特别是,这个处理器必需在地址产生单元302中有一个固定位移寄存器310,用Rf1来代表。固定位移寄存器应该是软件可编程的,如同在地址产生单元302中所有其他寄存器一样。也可能,但不是必需的,使用多于一个的固定位移寄存器,其中附加的多个固定位移寄存器312、314和316,分别用Rf2、Rf3……Rfnn来代表,在图中用虚线框表示。省略符……指出更多的附加固定位移寄存器可以加入。寄存器组322包括Rn、Nn、Mn和Rf1。本发明要求处理器有变址间接寻址方式的能力,它可以由这个领域中任何已知的方法来实现。应注意固定位移寄存器310和偏移寄存器306是不同的。固定位移寄存器310和偏移寄存器306完成不同的功能,并且它们是互相独立地被使用。
另外,这个处理器需要有一个新的方式,在本文中称为“固定位移方式”。这个固定位移方式有二个状态一个是使能状态,一个是非使能状态;它们能够由加入到控制寄存器318的固定位移配置位320来控制。固定位移配置位在这个方法中起着控制标志的作用。固定位移方式在本发明的方法中的运行详述于下面。控制寄存器318可以是在已经存在的处理器的设计中经过修改的一个已经存在的控制寄存器,也可以是一个新的控制寄存器。而且,所提供的处理器需要有实现固定移位方式执行过程步骤(见下面)的硬件。实现这些硬件设施以执行下述的步骤,可以使用本领域里多种众所周知的技术。
根据本发明的由处理器执行的实现固定位移方式产生存储地址的方法的步骤如下,并示于图4中。
1、在寄存步骤402中的寄存器组322,寄存入地址产生单元302(图3)。这个步骤寄存基地址进入地址寄存器304,地址偏移进入偏移寄存器306,缓冲器长度进入缓冲长度寄存器308,和固定位移量进入固定位移寄存器310。
2、在判定点404检查现行指令是否使用变址间接寻址方式。
3、如果未使用变址间接寻址方式,就用通常的方法在地址产生步骤408产生地址,此方法在本领域里是众所周知的。
4、如果变址间接寻址方式被使用,在判定点406检查固定位移配置位302(图3)是否被设定。
5、如果固定位移配置位320没有设置,固定位移方式处于非使能状态,地址产生单元302按通常的方法运行在存储地址产生步骤410。这时,本文描述的新的特性来动作,访问地址由Rn+Nn形成,它并不改变Rn寄存器304(图3)的值。当固定位移配置位302被清除的时候,偏移寄存器Nn 306(图3)是所有的后修改和间接变址寻址方式的源。
6、如果固定位移配置位是设定的,这样,固定位移方式处于使能状态;所有的变址间接寻址方式的存储地址产生的偏移源是固定位移寄存器310(Rfn),而不是偏移寄存器306(Nn);此过程在地址产生步骤412中进行。被产生的地址是固定位移寄存器310的内容和地址寄存器的内容之和。访问地址Rn+Rfn并没有改变Rn寄存器304(图3)的值。
根据本发明,存储地址产生方法在返回步骤414结束。
固定移位配置位作为一个控制标志,当它设定时,使固定移位方式处于使能状态;当它清除时,使固定移位方式处于非使能状态。无论如何,固定移位方式仅在现行指令使用变址间接地址方式中是有效的。如果现行指令使用的寻址方式不是变址间接寻址方式,固定移位方式甚至它是在使能状态下也不是有效的。如在本领域众所周知,存在着不同于变址间接寻址方式的其他寻址方式,包括但不限于直接寻址和后修改寻址方式。在一个指令中有可能包含任何这些寻址方式。术语“非变址间接寻址(Non-indexing indirect addressing)”在本文中是指不包括变址间接寻址方式的其他任何一种寻址方式。
应该注意,汇编语言能够,但是不是必须在存储地址产生命令中支持固定位移寄存器310(Rf1)。术语“汇编语言”在本文中指二者汇编语法支持和产生机器指令的配置。如果汇编语言支持固定位移寄存器,那么汇编语法激活固定位移是做一个单个指令限定而不是作为具有使能状态和非使能状态的处理器方式。在汇编语言不支持固定移位寄存器的情况下,规定命令仅具有偏移寄存器306(Nn)已经足够。因为这规定了寻址方式。硬件根据固定位移配置位320的状态自动地使用偏移寄存器306或者固定位移寄存器310用于存储地址的产生。也要注意,指定不同的存储阵列为“第一阵列”或“第二阵列”是任意的,且它们的内容也完全是任意的。
显而易见,根据本发明的方法允许处理器有效地访问复数向量的二部分。例如,假设地址产生单元和存储器的状态如下R1=1000(图3中地址寄存器304)N1=2(图3中偏移寄存器306)M1=被编程成线性寻址方式(图3中缓冲长度寄存器308-实际的编程是由制造厂决定的)Rf1=50(图3中固定位移寄存器310)执行下面的汇编码(伪码)Mov(R1)+N1,A;MOV(R1=N1),B;其中A和B是处理器的通用寄存器(不是地址产生单元302的寄存器),注意,(R1)+N1是后修改寻址方式,意思是存储访问是到位置R1,而R1在存储访问之后,被增量N1。也注意,(R1=N1)是变址间接寻址方式,意思是存储器的访问是到位置R1+N1,在存储访问期间或以后保留R1不变。
图5说明固定移位配置位320的两个不同值时的情形,对于存储区域502有地址504。在图5和下面的例子,所有数据值和地址位置用十进制表示,在两种情形下,下面所述保持·存储区域从地址1000向前到1049,被指定为第一阵列518,而存储区域从地址1050向前,被指定为第二阵列518。
·在执行之前,地址寄存器有个初始值506,等于1000。意即R1的初始值指向等于1000的存储器位置512,而1000的内容是-348。
·在第一个指令完成后,寄存器A中有值-348,而地址寄存R1指向地址1002,意即R1指向存储器中位置514,位置514有一个地址为1002,包含有数据值4391。
·在完成执行后,地址寄存器R1的最后值是510,它等于1002。这是因为第二个指令只包含变址寻址方式,而变址寻址方式是不会改变一个地址寄存器的值的。
在执行第二条指令以后,寄存器B的内容依赖于固定位移方式。下面对固定移位方式的设定和清除两种情形进行描述。
固定移位配置位不设置在这种情形里,固定移位配置位是清除的(不设置)。因此,固定移位方式处于非使能状态。存储埴的产生是按照通常的方法,在第二个指令执行之后,寄存器B存有数值4391,它是从第一阵列518的存储位置514来的。
固定移位配置位设置在这种情形里,固定移位配置位是设置的。因此,固定位移方式是处于使能状态。因为第一个指令不使用变址间接寻址方式,所以对第一个指令存储地址的产生是按照通常的方式。而第二条指令使用变址间接寻址方式,又因为固定移位配置位是设置的(因此,固定位移方式处于使能状态中),存储地址产生的偏移由Rf1去查找,而访问内容为-819的存储地址516。因此,在此情形,在第二个指令执行之后,寄存器B的内容是-819,它是来自第二阵列520的存储位置516。
所以,这可能有效地访问复数向量的实数部分和虚数部分。例如,如果实数部分存在第二阵列520中,而虚数部分存在第一阵列518中;然后初始地设定固定位移配置位,在执行上述二条指令之后,寄存器A存有复数向量的诸部分中的一个的虚数部分,而寄存器B存有复数向量的诸部分中的一个实数部分。
在上述例子中,根据本发明所表示的方法是在一种简单的存储器体系结构中,即单个存储空间的结构。今天,先进的DSP算法要求有比较完善的存储器体系结构,因此现代数字信号处理器有双存储空间结构。图6给出一个例子,它是根据本发明的方法用于复数向量,其第一阵列和第二阵列存在不同的存储空间。地址606对应于数据值内容608。在图6和以下的例子中,所有地址位置用十六进制表示。
为了把本发明的方法用于双存储空间体系结构中,存储器的安排必须是顺序的,这里有一个存储空间602,用“X存储地址空间”表示,用于第一阵列610,其开始地址为0X0000;同时,有一个存储空间604,用“Y存储地址空间”表示,用于第二阵列612,其开始地址为0X8000。如所要求的,这些地址示于图6是顺序的。注意在这个例子中其地址的最高位(MSB)是标识正在使用哪个存储空间的。
在这个配置中,复数向量的实数部分的基地址可以放在X空间602中的,例如,地址0X0002中,而复数向量的虚数部分的基地址可以放在Y空间的,例如,0X8008地址中。为了工作在固定位移方式下,需要把固定位移位寄存器Rf设置成0X8006(0X8008-0X0002),而且设置控制寄存器318(图3)中的固定位移配置位320。
虽然,本发明已经描述的是有限的实施例,对本发明的许多变化、修改和其他应用将被认识到。
权利要求
1.一种地址产生单元,用于计算处理器访问复数向量的存储地址,该地址产生单元包括(a)一个地址寄存器;(b)使变址间接寻址性能有效的方法;(c)一个固定位移寄存器;(d)使固定位移寻址方式有效的方法,此寻址方法的状态可在由一个使能状态和一个非使能状态组中进行选择;(f)一个固定位移配置位,用于指明所述的固定移位方式的状态。
2.如权利要求1所述的地址产生单元,其特征在于进一步包含一个偏移寄存器,其中所述的固定移位寄存器区别于所述的偏移寄存器。
3.一种地址产生单元,用于计算处理器访问复数向量的存储地址,该处理器带有固定位移限定标志的汇编语言语法;地址产生单元包括(a)一个地址寄存器;(b)使变址间接寻址能力有效的方法;(c)一个固定位移寄存器;和(d)使固定位移有效的方法;(e)检测固定位移限定标志的方法;和(f)根据所述的检测固定位移修饰标志来激活所述的固定位移的方法。
4.如权利要求3所述的地址产生单元,其特征在于进一步包含一个偏移寄存器,其中所述的固定移位寄存器区别于所述的偏移寄存器。
5.一种对地址产生单元的改进,用于计算处理器访问复数向量的存储地址,地址产生单元包含一个地址寄存器和一个偏移寄存器,这个改进包括(a)实现固定位移方式的方法,所述的固定位移方式的状态从由使能状态和不使能状态组成的组中选择(b)一个区别于偏移寄存器的固定位移寄存器,它包含当采用固定位移方式时对地址寄存器的偏移;和(c)一个固定移位配置位,用于指明所述的固定位移方式的状态。
6.一种在处理器中实现固定位移方式的方法,该处理器有一个地址寄存器,一个固定位移寄存器和一个固定位移配置位;该处理器还具有使用变址间接寻址方式的指令性能,该处理器执行当前指令时,所述的方法包括有下列步骤(a)寄存一个基地址到地址寄存器、一个固定位移量到固定位移寄存器;(b)检查用于变址间接寻址方式的现行指令;(c)检查固定位移配置位;和(d)产生一个存储地址等于所述的基地址和所述的固定位移量之和,当且仅当现行指令包含变址间接寻址方式和固定位移配置位被设置。
7.一种由处理器访问复数向量的分量的方法,该处理器有一个地址寄存器和一个带有一个固定位移寄存器的固定位移方式;该分量具有第一部分和第二部分,第一部分具有基地址,而第二部分具有从这个基地址偏移的固定位移量;所述的固定位移方式的状态从由使能和不使能组成的组中选择;这个处理器的指令可以从变址间接寻址和非变址间接寻址所组成的组中选择寻址方式;所述的方法包括有下列步骤(a)寄存基地址到地址寄存器;(b)寄存固定位移量到固定位移寄存器;(c)选择固定位移方式的使能状态;(d)用具有非变址间接寻址方式的指令访问第一部分;和(e)用具有变址间接寻址方式的指令访问第二部分;
8.如权利要求7所述的方法,其特征在于处理器进一步有一个可设定的固定位移配置位和一种变址间接寻址方式;所述的选择固定位移方式的使能状态包括有步骤1)设定固定位移配置位;和2)使用变址间接寻址方式。
全文摘要
一种有效地访问在数字信号处理器中的复数向量的实数部分和虚数部分的方法和装置。它的实现是通过引入一种新的处理器寻址方式-固定位移方式,这需要一个附加的寄存器-固定位移寄存器,和一个附加的控制标志-固定位移配置位。采用这个方法只要求一个单个地址寄存器用于变址寻址方式,而留下偏移寄存器可被同时用于维修和/或位反方式。不要求双存储器空间分享共同的地址空间,因而简化了存储管理,同时这个方法和装置与所有寻址方式兼容。
文档编号G06F9/355GK1318167SQ99810889
公开日2001年10月17日 申请日期1999年9月13日 优先权日1998年9月14日
发明者吉尔·纳韦, 埃兰·魏因加滕 申请人:印菲内奥技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1