内存源操作数的选择电路及选择方法

xiaoxiao2020-7-22  8

专利名称:内存源操作数的选择电路及选择方法
技术领域
本发明涉及一种数字信号处理系统,尤其是数字信号处理系统中内存源操作数的选择电路及选择方法。
背景技术
信息时代对信号处理也提出了越来越高的要求,通用处理器往往难以完成高速繁杂的信号处理,数字信号处理器(DSP)也就应运而生了。数字信号处理器主要是指对数字化的实时信号进行运算处理,它具有数字信号处理功能,可以进行信号的滤波、混合和比较等操作。数字信号处理器需要进行处理的数据往往重复使用率很高,如果总是从较远的存储器进行存取,必然会对数字信号处理器的速度性能产生影响。对此,数字信号处理器的设计者们典型地是在电路中加入中间寄存器或采用面向寄存器的方式来解决这个问题。
针对选择内存源操作数的方式而言,目前的数字信号处理器主要可以分为两大类,一类是面向寄存器的内存操作体系,一类是直接面向内存的内存操作体系。
前者是在内存与执行单元之间设置中间存储器,如图1所示。在进行内存操作时,需要先执行装载操作指令,把数据信号由内存存储器中装载到中间存储器301中,这里中间存储器301可以是专门的装载寄存器,之后中间存储器301将数据传送到逻辑运算单元(ALU)等执行单元302中,由指令对这些数据进行运算或其它操作,执行完毕后得到的数据再返回给中间存储器301。由于执行单元302只能从中间存储器301中取数据,因此必须在运算执行前完成数据的装载,这样在运算执行前至少需要一条指令的开销。例如进行一条加法运算和一条乘加运算,具有这类内存操作体系的DSP就至少需要如下的三条指令,DEC A‖load X0,[Ar4]‖load Y0,[Ar2]
ADD X0,Y0,B‖load X1,[Ar0]‖load Y1,[Ar1]MPY X1,Y1,A‖为并行符号,‖左右两侧的操作是在一条指令中同时进行的。在第一条指令中,累加器A自减1,‖右侧为内存操作,分别根据Ar4、Ar2两个地址寄存器提供的地址到X、Y存储器中取出数据装载至中间存储器301;在第二条指令中,由中间存储器301提供源操作数,进行加法运算,并把运算结果送至累加器B,同时‖右侧进行内存操作,分别根据Ar0、Ar1两个地址寄存器提供的地址到X、Y存储器中取出数据装载至中间存储器301;第三条指令是进行乘运算,运算的源操作数也是只能直接从中间存储器301中取出。
而后者是直接面向内存操作,执行部件可以直接从内存中取数据进行处理。参见图2,面向内存操作的处理器实际上往往也设有中间存储器401,但其功用主要是用来保存那些在高速标量存储器中装不下的数据,使下次使用这些数据时不必再从较远的内存去取。这里的中间存储器401同前者面向寄存器的中间存储器301一样,也无法进行自我管理,而需要程序员或编译程序来进行管理,再通过一般的指令将数据装入或者移出中间存储器401。这样必然也会产生额外的指令开销。类似上面的例子来进行一条加法运算和一条乘加运算,具有这类直接面向内存体系的DSP至少需要如下的三条指令,DEC AADD X,Y,B‖X[Ar4],Y[Ar2]MPY X,Y,A‖X[Ar0],Y[Ar1]在第一条指令中,累加器A自减1;第二条指令是分别根据Ar4、Ar2两个地址寄存器提供的地址到存储器X、Y中取出数据,并直接从存储器X、Y中送出源操作数到ALU,进行加法运算,并把运算结果送至累加器B;第三条指令‖左侧在进行乘运算,分别根据Ar0、Ar1两个地址寄存器提供的地址到X、Y存储器中取出数据,也是直接从X、Y存储器中取出源操作数进行运算。

发明内容
本发明的目的在于提供一种数字信号处理器中的内存源操作数选择电路,以提高内存操作的并行性能,从而降低数字信号处理器的功耗。
本发明的另一目的在于提供一种数字信号处理器中从内存取源操作数的方法,使内存操作更加灵活,指令的并行性大大提高。
本发明的一个方面提供了一种用于数字信号处理系统的内存源操作数选择电路,该选择电路包括存储可用数据的至少一个存储器;连接到存储器并可以从中提取数据信号的至少一条数据总线;连接到至少一条数据总线并分别与所述至少一个存储器中的每一个相对应的至少一个中间存储器;并行地连接到所述至少一条数据总线和至少一个中间存储器并负责数据处理的执行部件,其中至少一条数据总线在进行数据内存装载动作时,可以自动地把来自存储器的数据信号装载至与其相对应的中间存储器中,执行部件直接从至少一条数据总线提取数据信号或直接从中间存储器提取数据信号。
本发明的另一个方面提供了一种数字信号处理系统中的内存源操作数选择电路的控制方法,包括从存储器中把数据信号装载至至少一条数据总线;数据总线把数据信号送往执行部件处理,并将其自动装载至相应的中间存储器;当不需要处理中间存储器中的数据时,直接通过数据总线提取存储器中的数据进行处理,否则根据计算机可读编码是否指定直接从中间存储器提取数据,执行部件从相应的中间存储器中提取数据进行处理,或直接通过数据总线提取存储器中的数据进行处理。
利用本发明所述的内存源操作数选择电路,在进行内存操作时,数据信号首先从存储器中传送到数据总线,数据总线在把数据信号送到执行单元进行处理的同时,自动把数据信号装载到中间存储器。
本发明的内存源操作数选择电路在对数据总线进行数据装载的同时可以自动地把数据装载至对应的中间存储器中,并可在一条指令中同时进行以内存写到数据总线上的数据为源操作数的操作,因此不需要额外的指令对中间存储器进行装载动作,从而降低了功耗。另一方面,本发明的取内存源操作数的方法,使内存操作更加灵活,执行部件选择来自内存的源操作数的时候,源操作数既可以直接选择从存储器中取,又可以选择从中间存储器中取,使内存操作的并行性得以提高。


下面将结合附图和实施例对本发明作进一步详细描述。结合以下附图对本发明实施例的阐述,是为进一步揭露本发明的特征所在,但并不限制本发明,图中相同参考号代表实施例中相应元件或步骤,其中图1为现有技术的数字信号处理器中的取内存源操作数电路框图;图2为现有技术的数字信号处理器中的另一种取内存源操作数电路框图;图3为根据本发明的数字信号处理器的内存源操作数选择电路框图;图4为根据本发明的数字信号处理器的计算单元电路图。
图5为根据本发明的数字信号处理器中的内存源操作数选择电路控制方法的流程图。
具体实施例方式
在本实施例中,以一具有流水线式结构的数字信号处理器(DSP)为例来阐述本发明,但是,该DSP只是范例性的,本领域的技术人员可以理解本发明适用于任何数字信号处理系统。
本实施例的内存源操作数选择电路是集成在DSP电路中的。参见图3,该内存源操作数选择电路包括X、Y两个数据存储器121、122,与两个数据存储器相对应的两条可以分别直接从所述X、Y数据存储器121、122中取数据信号的X、Y数据总线111、112,以及分别连接到所述X、Y数据存储器121、122并能自动从X、Y数据存储器121、122进行数据装载动作的中间存储器101、102(下文中分别称之为XP内存装载寄存器和YP内存装载寄存器)。
本实施例中的两个数据存储器分别定义为X数据存储器121和Y数据存储器122,本领域一般技术人员可知,所述X数据存储器121和Y数据存储器122可以是分开形成,也可以根据来自一个更大的存储器的存储器地址从逻辑上分割成众多簇。在本实施例中采用的方案是内部静态随机存取存储器(StaticRandom Access Memory,SRAM)和外部存储器相结合,并从逻辑上进行切分而形成。实际上,数据存储器的数量并不影响本发明的实施,在其它对本发明的实施方案中,数据存储器可以为一个或者是其它数量。但两个及两个以上的数据存储器可以提高指令的并行性,尤其在执行部件需要对两个或两个以上的源操作数进行数据处理时,同时使用两个数据存储器,采用并行的取源操作数的方式,可以避免由于分别取两个源操作数所产生的时间延迟。
所述的数据总线分别与两个数据存储器相对应,与X数据存储器121相对应的数据总线为X数据总线111,与Y数据存储器122相对应的数据总线为Y数据总线112。在本实施例中,X数据总线111和Y数据总线112的数据宽度例如为16位,且例如作为单向的写总线。虽然本实施例中数据存储器和数据总线一一对应,但是其它的关联方式也可以采用,比如二对一的关联方式等,而并不影响本发明的实施效果。此外,在使用多于两个的数据存储器的情况下,可以有相应个数的数据总线与之对应。
连接到所述存储器的中间存储器101、102在本实施例中是专门用作装载数据用,在这里分别将它们称为XP内存装载寄存器101和YP内存装载寄存器102。在本实施例中,来自X数据总线111的数据规定装入XP内存装载寄存器101,而来自Y数据总线112的数据规定装入YP内存装载寄存器102。
本实施例中,每次内存在数据计算过程中进行数据装载动作的时候,必定同时要自动地把来自内存存储器的数据装入到内存装载寄存器中。如果是X数据存储器121要对X数据总线111进行数据装载,来自X数据存储器121的数据同时会自动地从X数据总线111装入到XP内存装载寄存器101;如果是Y数据存储器122要对Y数据总线112进行数据装载,来自Y数据存储器122的数据同时会自动地从Y数据总线112装入到YP内存装载寄存器102。
结合参见图4,执行部件103包括算术运算单元(ALU)201与乘加单元等,在DSP中用来对数据信号进行各种实时处理。执行部件103既可以直接通过X、Y数据总线111、112从X、Y数据存储器121、122取数据信号,又可以直接从XP内存装载寄存器101、YP内存装载寄存器102中取数据信号。在本实施例中,一般是由指令或汇编程序来指定是直接从X、Y数据存储器121、122还是直接从XP内存装载寄存器101、YP内存装载寄存器102中取数据。如果指令不指定数据内存的源操作数(通常是栈操作),缺省认为是X数据存储器121的操作;对于双内存的操作,如果指令中指定一个的源操作数是来自X数据存储器121的话,另一个的源操作数则缺省认为是来自Y数据存储器122,反之亦然。
本实施例采用流水线结构,可以有多条指令并行,前一条指令在对内存取数据时,后一条指令如果需要内存数据,可以从XP内存装载寄存器101、YP内存装载寄存器102中取数据,这样就有效地避免了流水线结构可能产生的数据冲突问题,又能达到高速执行的效果。而非流水线结构的数据处理中,同样可以采用本发明,但在流水线结构中,本发明在有多条指令并行的情况下其优点更显突出。
在多级流水线结构的DSP中,本发明可以同时实现内存操作和一条、两条或两条以上的指令的并行。通过改变内存的数据通道数量和装载寄存器的数量就可以改变并行的指令的条数。数据通道数量和装载寄存器的数量的变化应不影响本发明的实质精神。在本实施例中,设计了两条写入数据总线111、112和XP、YP内存装载寄存器101、102,则相应地,最多可以实现内存操作和两条指令的并行。在另一个实施例中,也可以设计三条写入数据总线和三个装载寄存器,从而实现内存操作和多条指令的并行。
由于采用多级流水线结构,数据从X、Y内存存储器121、122自动装载到XP、YP内存装载寄存器101、102的操作与对X、Y内存存储器121、122寻址的内存操作在同一条指令中完成,在本实施例中自动装载到XP、YP内存装载寄存器101、102的操作与对X、Y内存存储器121、122寻址的内存操作指令在同一条指令中进行,并且前一操作在后一操作的紧接的下一个指令周期内完成,这样,可以直接在对X、Y内存存储器121、122寻址的内存操作指令后紧接的下一条指令中从XP、YP内存装载寄存器101、102中取源操作数进行处理。本实施例中因为有多级流水线的结构,若有内存操作的其他并行指令存在,也并不会影响到XP、YP内存装载寄存器101、102的自动装载动作。
以下采用本实施例所描述的结构举一运算实例进行说明。
参见图4的计算单元电路图,同样是执行一条加法运算和一条乘法运算,在本实施例中,就只需如下两条指令,DEC A‖X[Ar4],Y[Ar2]ADD XP,YP,B‖X[Ar0],Y[Ar1]‖MPY X,Y,A在第一条指令中,累加器A211自减1,‖符号的右侧为内存操作,与‖符号左侧的指令并行操作,分别根据Ar4、Ar2两个地址寄存器提供的地址在X、Y数据存储器121、122中取出数据到X、Y数据总线111、112,并同时自动地将数据从X、Y数据总线111、112装载至XP、YP内存装载寄存器101、102。
第二条指令是直接从XP、YP内存装载寄存器101、102中送出源操作数到算术逻辑单元201,进行加法运算,并把运算结果送至累加器B 212;同时第一个‖符号右侧进行内存操作,分别根据Ar0、Ar1两个地址寄存器提供的地址到X、Y数据存储器121、122中取出数据到X、Y数据总线111、112,并同时自动装载到XP、YP内存装载寄存器101、102;第二个‖符号右侧则是直接通过X、Y数据总线111、112从X、Y数据存储器121、122中取出需要进行运算的源操作数送入乘法器202,进行乘法运算。
从上面的第二条指令可以很明显地看出,本实施例的DSP可以同时执行内存操作和两条运算指令,而且并不会引起数据冲突的问题。相比于现有技术,执行相同的任务,本实施例需要更少的指令周期,因此也达到了降低功耗的目的。
图5为根据本发明的数字信号处理器中的内存源操作数选择方法的流程图。为了说明起见,在下面的描述中,仍旧以图3所示的系统为例进行说明,但是这样的举例仅是示范性的,并不对本发明有任何的限制。
在步骤502中,从X、Y内存存储器121、122中把指定内存地址中的数据分别装载至X、Y数据总线111、112。流程随后继续至步骤504,在那里X、Y数据总线111、112把取出的数据信号送往执行部件103进行处理,并同时将它们自动装载至各自的XP内存装载寄存器101、YP内存装载寄存器102(即,中间存储器101、102)。流程随后在步骤506确定是否需要处理XP内存装载寄存器101、YP内存装载寄存器102中的数据。如果不需要处理的话,流程将继续至步骤508,在那里执行部件103可以直接通过X、Y数据总线111、112提取X、Y内存存储器121、122中的数据进行处理,或者执行乘、加等其他处理。如果在步骤506,确定需要处理XP内存装载寄存器101、YP内存装载寄存器102中的数据,流程将继续至步骤510。在步骤510,将确定计算机指令是否指定直接从中间存储器提取数据。本领域的技术人员应该可以理解,这里所称的计算机指令可以包括诸如汇编程序指令以及各种高级计算机语言指令等各种形式的计算机可读编码。如果在步骤510确定要直接从中间存储器提取数据,流程将继续至步骤512,在那里执行部件103将直接从XP内存装载寄存器101、YP内存装载寄存器102提取源操作数进行处理,而不需要再通过装载命令从X、Y内存存储器121、122提取数据。否则流程将继续至步骤508,并进行上述的操作。本领域的技术人员可以知道,从寄存器提取数据的效率要比从内存存储器提取数据的效率高得多,而且在执行内存操作的同时,还可以处理两条甚至更多的运算指令,从而采用本发明方法的流程提高了数字信号处理系统的并行处理效率,并降低了功耗。
以上对本实施例的说明只是为了进一步更清楚地描述本发明,而非对本发明的限制。本领域的普通技术人员应该可以理解,本发明并不限于实施例所做的阐述,任何基于本发明的修改和本发明的等同物都应涵盖在本发明的权利要求的精神和范围之内。
权利要求
1.一种用于数字信号处理系统的内存源操作数选择电路,其特征在于,该选择电路包括存储可用数据的至少一个存储器;连接到所述至少一个存储器并可以从中提取数据信号的至少一条数据总线;连接到所述至少一条数据总线并分别与所述至少一个存储器中的每一个相对应的至少一个中间存储器;以及并行地连接到所述至少一条数据总线和至少一个中间存储器并负责数据处理的执行部件,其中,所述至少一条数据总线在进行数据内存装载动作时,可以自动地把来自所述存储器的数据信号装载至与其相对应的所述中间存储器中,所述执行部件直接从所述至少一条数据总线提取数据信号或直接从所述中间存储器提取数据信号。
2.如权利要求1所述的内存源操作数选择电路,其特征在于,所述数字信号处理系统是具有流水线式结构的数字信号处理器。
3.如权利要求1所述的内存源操作数选择电路,其特征在于,所述存储器结合内部静态随机存取存储器和外部存储器。
4.如权利要求1所述的内存源操作数选择电路,其特征在于,所述至少一条数据总线包括两条数据总线。
5.一种数字信号处理系统中的内存源操作数选择方法,其特征在于,该方法包括以下步骤从存储器中把数据信号装载至至少一条数据总线;数据总线把数据信号送往执行部件处理,并将其自动装载至相应的中间存储器;当不需要处理中间存储器中的数据时,直接通过数据总线提取存储器中的数据进行处理,否则根据计算机可读编码是否指定直接从中间存储器提取数据,执行部件从相应的中间存储器中提取数据进行处理,或直接通过数据总线提取存储器中的数据进行处理。
全文摘要
本发明揭示了一种用于数字信号处理系统的内存源操作数选择电路及其控制方法。在数字信号处理系统中,至少一个存储器存储有可用数据。至少一条数据总线连接到存储器并可以从中提取数据信号。至少一个中间存储器连接到至少一条数据总线并分别与至少一个存储器中的每一个相对应。当数据总线在进行数据内存装载动作时,可以自动地把来自存储器的数据信号装载至与其相对应的中间存储器中。而负责数据处理的执行部件既能直接从至少一条数据总线提取数据信号又能直接从中间存储器提取数据信号。通过本发明的源操作数选择电路及其控制方法,可以有效地提高内存操作的并行性能,从而降低数字信号处理器的功耗。
文档编号G06F13/14GK1503124SQ0214535
公开日2004年6月9日 申请日期2002年11月22日 优先权日2002年11月22日
发明者周振亚 申请人:上海奇码数字信息有限公司

最新回复(0)