CN1617259A - 数字信号处理器 - Google Patents
数字信号处理器 Download PDFInfo
- Publication number
- CN1617259A CN1617259A CN200410095734.9A CN200410095734A CN1617259A CN 1617259 A CN1617259 A CN 1617259A CN 200410095734 A CN200410095734 A CN 200410095734A CN 1617259 A CN1617259 A CN 1617259A
- Authority
- CN
- China
- Prior art keywords
- address
- data
- circuit
- subregion
- carrier store
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4403—Processor initialisation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Complex Calculations (AREA)
- Image Input (AREA)
Abstract
一种数字信号处理器,用于工作RAM,所述工作RAM能够以可重写的方式来存储多个数据,并且将其存储区域分为分别由读/写操作中的地址指定的多个子区域,其中运算电路根据程序,对工作RAM中的数据进行计算,当检测到其中程序不需要存取数据存储器的非存取事件时,写电路对于由地址数据指定的进行初始化的规定子区域的每一个规定地址,强制将“0”写入到工作RAM中。因此,能够实现对工作RAM中的特定区域选择性地进行初始化,而无需增大外围电路的整个尺寸,无需进行复杂的控制,也无需增大用于初始化的处理时间。
Description
技术领域
本发明涉及一种用于数字滤波器等中的数字信号处理器,其中必须对工作随机存取存储器(即,工作RAM或缩写为WorkRAM)进行初始化。
本申请要求日本专利申请No.2003-385234、2004-240705、2004-297983和2004-323735的优先权,其内容在此一并参考。
背景技术
在传统上,已开发了数字信号处理器,以根据以下规定的方法进行由于多处理的工作RAM的初始化:
(a)共同地对工作RAM的所有区域进行初始化。
(b)只对用于在将来存储数据以便进行尚未执行的处理的工作RAM的选定区域进行初始化。
(c)针对能够同时被初始化并由此被分组的每一组数据来设置工作RAM,因此在工作RAM的每一个单元中进行初始化。
图7示出了作为数字信号处理器的应用示例的三阶有限冲击响应(FIR)滤波器,即,通过数字滤波器Rg11、Rg12和Rg13顺序地发送输入数据Din的数字滤波器3。这里,通过在规定时间周期内将输入数据Din保持为“0”来进行滤波计算,其中对于到数字滤波器3的输入信号,所述规定时间周期比采样周期T长三倍,从而对数字滤波器3的输出信号进行初始化。假设将用于将输入数据Din发送到输入寄存器Rg11的第一时间、将数据从输入寄存器Rg11发送到第一延迟寄存器Rg12的第二时间和将数据从第一延迟寄存器Rg12发送到第二延迟寄存器Rg13的第三时间均设为1ms(毫秒),其中可以在3ms内分别初始化存储在输入寄存器Rg11、第一延迟寄存器Rg12和第二延迟寄存器Rg13中的数据以及数字滤波器3的输出信号。
然而,对于工作RAM的所有区域上的复杂初始化,存在的问题在于会出乎意料地初始化不应当初始化的规定数据,并且会毫无必要地在工作RAM的初始化的一定时间周期内,停止进程中必须运行的处理。
对于工作RAM的未使用区域上的选择性初始化,响应由数字信号处理器所执行的程序的内容和由数字信号处理器执行的程序的数目,改变了进行初始化的区域的数目。因此,工程师很难直接确定在数字信号处理器中指定进行初始化的全部区域的寄存器的数目。此外,这增大了执行指定进行初始化的区域数目的处理的CPU的负担。
对于图7所示的FIR数字滤波器的初始化,需要相当长的时间来完成初始化,特别是在高阶滤波器的情况下和FIR数字滤波器的数据更新频率较低的情况下。对于IIR(无限冲击响应)数字滤波器的初始化,由于其中存在反馈回路,即使当将“0”持续地施加到其上时,也不能对其输出数据进行初始化。
对于传统上公知的存储器的高速初始化,日本专利申请No.昭58-34490公开了将用于清除特定区域中存储器内容的规定命令(有关部分清除)用于显示内容更新(或显示刷新)中的显示存储器的初始化,其中对于其显示内容改变的特定区域选择性地进行初始化,从而在操作期间只在特定区域进行必要的初始化。
例如日本专利申请No.平07-312081、平03-105640和平04-64155的其它文献公开了存储器的高速初始化,其中为了在设备的启动模式中提高存储器的初始化速度,对地址进行屏蔽,以便提取进行初始化的地址组,并且减小了RAM的外围电路的尺寸,由此减小了初始化所需的时间。
发明内容
本发明的目的是提供一种数字信号处理器,能够对工作RAM的特定区域选择性地进行初始化,而无需增大外围电路的整个规模,无需进行复杂的控制,也无需增大用于初始化的处理时间。
在本发明的第一方面中,数字信号处理器包括数据存储器,能够以可重写的方式存储多个数据;运算电路,用于对从数据存储器顺序读取的数据进行计算;写电路,用于强制将“0”写入到数据存储器的规定地址中;以及逻辑电路,用于与施加到数据存储器的地址信号同步地驱动写电路。
在本发明的第二方面,数字信号处理器包括程序存储器,用于存储程序;运算装置,用于根据程序进行计算;以及数据存储器,用于临时存储计算中使用的数据,由程序将所述数据存储器分为由读/写地址指定的多个子区域。数字信号处理器还包括寄存器,用于存储指定进行初始化的子区域的数据;地址数据产生器,用于根据寄存器的数据,产生指定进行初始化的数据存储器的地址的地址数据;非存取(non-access)检测器,用于检测其中程序不需要存取数据存储器的非存取事件;以及写电路,用于当检测到非存取事件时,将地址数据提供给数据存储器,并且用于将“0”写入到数据存储器的指定地址。这里,根据基于寄存器的数据确定的规定子区域的顶端地址来建立地址数据,并且当检测到非存取事件时,增加计数值。
在本发明的第三方面,数字信号处理器包括程序存储器,用于存储程序;运算装置,用于根据程序进行计算;数据存储器,用于临时存储计算中使用的数据,由程序将所述数据存储器分为多个子区域,由读/写操作中程序中包括的相对地址来指定所述多个子区域;地址计数器;以及绝对地址产生装置,用于根据相对地址和地址计数器的输出来产生用于数据存储器的绝对地址。数字信号处理器还包括寄存器,用于存储指定进行初始化的子区域的数据;地址数据产生器,用于根据寄存器的数据,产生指定进行初始化的数据存储器的地址的地址数据;非存取检测器,用于检测其中程序不需要存取数据存储器的非存取事件;以及写电路,用于当检测到非存取事件时,将绝对地址提供给数据存储器,并且用于将“0”写入到数据存储器的指定地址,其中响应地址计数器的输出的改变,强制用“0”取代地址数据。
在上述中,可以使用第一和第二寄存器,其中每一个均存储指定要进行初始化的规定子区域的相同数据。这里,根据第一寄存器的数据来产生指定进行初始化的数据存储器的相对地址。在子区域的初始化完成时,清除第一寄存器的对应数据。响应地址计数器的输出的变化,对由第二寄存器的数据指定的相对地址“0”进行初始化。
结果,数字信号处理器能够通过简单的电路配置来初始化数据存储器(例如,工作RAM)的特定地址,而无需外部CPU的干预。
附图说明
参考以下的附图,将更详细地描述本发明的这些及其它目的、方案和实施例,其中:
图1是示出了根据本发明第一实施例的数字信号处理器的整体结构的方框图;
图2是示出了由图1中的数字信号处理器实现的信号处理系统的简化方框图;
图3A示出了结合步骤“0”到“15”存储的指令的列表;
图3B示出了处于存储器初始化模式的、图1所示的工作RAM的操作状态;
图4A示出了工作RAM的存储器映射;
图4B示出了图1所示的系数存储器的存储器映射;
图5示出了有关工作RAM中的数字滤波器的区域的存储器初始化的开启/关闭状态;
图6是关于由图1所示逻辑电路实现的初始化控制的真值表;
图7是示出了三阶FIR数字滤波器的示例的电路图;
图8是示出了包括根据本发明第二实施例的数字信号处理器的乐声信号产生电路的结构的方框图;
图9是示出了采用了图8所示的乐声信号产生电路的便携式电话的结构的方框图;
图10图解地示出了关于图8所示的工作RAM的子区域的结构;
图11图解地示出了与工作RAM的绝对地址相关的相对地址关于时间的变化,以便解释由图8所示的数字信号处理器中采用的初始化电路进行的初始化处理;
图12是示出了初始化处理的细节的流程图;
图13是示出了包括根据本发明第三实施例的数字信号处理器的乐声信号产生电路的结构的方框图;
图14是示出了由图13所示的初始化电路进行的初始化处理的流程图;以及
图15图解地示出了与工作RAM的绝对地址相关的相对地址关于时间的变化,以便解释初始化处理。
具体实施方式
利用参考附图的示例,将更详细地描述本发明。
1.第一实施例
图1是示出了根据本发明第一实施例的数字信号处理器5的整体结构的方框图;以及图2是示出了由数字信号处理器5实现的信号处理系统2的简化方框图。信号处理系统2包括数字滤波器3a、3b和3c,每一个均具有不同的特性;以及混合器(或加法器)4。进行两个系列的进程,即,响应输入数据Pin 1来产生输出数据Pout的进程A和响应输入数据Pin 2来产生输出数据Pout的进程B。
接下来,将描述信号处理系统2的处理的细节。在进程A中,数字滤波器3c在数字滤波器3a的操作之后进行操作。在进程B中,数字滤波器3c在数字滤波器3b的操作之后进行操作。为了同时进行进程A和进程B,将数字滤波器3a的操作结果和数字滤波器3b的操作结果都提供到混合器5,其中将这二者混合并进行滤波器3c的操作。
每一个数字滤波器3a、3b和3c实质上具有图7所示的三阶FIR数字滤波器3的相同结构。由图1所示的数字信号处理器5来实现数字滤波器3a、3b和3c的功能。即,数字信号处理器5对于以时分方式进行的进程,利用系数和输入到其中的数据来进行多次(multipletimes)计算。
在图1中,数字信号处理器5包括信号处理块6,其包括乘法器11、加法器12、系数存储器13、地址计数器14、指令存储器15、工作RAM(即,WorkRAM)16、门电路17a、17b和17c,以及逻辑电路18。将工作RAM的字长度设为九个字。
地址计数器14递增用于指令存储器15的地址值,其中可以在“0”到“15”的范围内逐一地顺序增大地址值。指令存储器15将指定被存取区域的地址输出到工作RAM 16的输入端子A。为了将数据写入到工作RAM 16,通过或门17b将WorkRAM写指令输出到工作RAM 16的输入端子WE(即,写使能端子)。这里,将被写入到工作RAM 16的数据Din经过与门17a写入到工作RAM 16的输入端子Im。为了从工作RAM 16读取数据并将其提供到乘法器11,指令存储器15将WorkRAM读指令输出到工作RAM 16的输入端子(即,写使能端子)RE(未示出)。将从工作RAM 16的输出端子Om输出的数据提供到乘法器11的输入端子Xin。
逻辑电路18根据其进行的逻辑操作,接收来自指令存储器15的滤波器选择信号和来自外部CPU(未示出)的存储器初始化使能信号。为了强制初始化工作RAM 16的特定区域,逻辑电路18将存储器初始化信号FCin输出到公共相连的门电路17a、17b和17c的输入端子。
系数存储器13根据从指令存储器15输出并提供给系数存储器13的系数存储器地址,将用于处理的系统输出到乘法器11的输入端子Yin。乘法器11将从工作RAM 16输出并输入到乘法器11的输入端子Xin的数据与从系数存储器13读取并提供到其输入端子Yin的系数相乘。然后,从乘法器11的输出端子MUout输出由乘法器11产生的乘法结果,并将其提供到加法器12的输入端子Ain。加法器12对其输入端子Ain的“当前”输入数据和在当前时刻的一个时钟周期之前产生的相加结果求和,由此产生了输出信号Dout。
接下来,将描述信号处理系统2的处理细节。如图2所示,信号处理系统2包括数字滤波器3a、3b和3c,由进行多次计算的数字信号处理器5来实现其功能。之后,将详细描述实现了信号处理系统2的功能的数字信号处理器5的全部操作。
首先,将对数字信号处理器5加电以便完全初始化工作RAM 16的区域时,逻辑电路18将被设为“0”的存储器初始化信号FCin提供给门电路17a、17b和17c的“公共”输入端子,由此,打开了所有的门电路17a、17b和17c。因此,通过门电路17a,在工作RAM 16的输入端子Im处,直接将输入数据Din提供给工作RAM 16,并且通过门电路17b,将WorkRAM写指令提供在写使能端子WE处;还直接从其输出端子Om输出数据。
图3A示出了结合步骤“0”到“15”,在指令存储器15中描述的指令的列表,其中符号“NOP”表示“无操作”。图3B示出了随后将要描述的处于存储器初始化模式的工作RAM 16的操作状态。
图4A示出了工作RAM 16的存储器映射,图4B示出了系数存储器13的存储器映射。这里,在图4A所示的工作RAM 16的九个地址中的每一个处(范围从“0”到“8”)写入并读取数据Dwx(其中w=1,2,3;且x=1,2,3)。具体地,图7所示的数字滤波器3的前述寄存器Rg11到Rg13分别与工作RAM 16的地址相连,其中输入寄存器Rg11对应于地址“3(w-1)”(其中w=1,2,3);第一延迟寄存器Rg12对应于地址“3(w-1)+1”;以及第二延迟寄存器Rg13对应于地址“3(w-1)+2”。数据Cwx(其中w=1,2,3;且x=1,2,3)分别指定了数字滤波器3a、3b和3c的系数。
利用下标“w”,如下定义前述数据和系数:
数据D1x(其中x=1,2,3)用于数字滤波器3a;数据D2x用于数字滤波器3b;以及数据D3x用于数字滤波器3c。类似地,系数C1x(其中x=1,2,3)用于数字滤波器3a;系数C2x用于数字滤波器3b;以及系数C3x用于数字滤波器3c。
此外,利用下标“x”定义图4所示的工作RAM 16的地址,并将其分类为分别用于数字滤波器3a、3b和3c的数据寄存器。
接下来,将描述数字滤波器3a的所有操作。
数字信号滤波器5根据存储在指令存储器15并根据从地址计数器14的地址输出从指令存储器15读取的指令进行处理。这里,利用前述数据和系数能够充分地进行处理,响应由读指令定义的地址,分别从关于工作RAM 16的存储器映射(见图4A)和系数存储器13(见图4B)读取并向其写入所述数据和系数。例如,图3A和3B中的步骤1描述了进程“D11输入”,其中将输入数据作为“D11”写入到工作RAM 16。在该进程中,在由指令存储器15存取的工作RAM 16中,指定与D11相对应的特定地址。将与D11相对应的指定地址从关于工作RAM16的存储器映射提供到工作RAM 16的地址端子A,从而指定图4A所示的地址0。同时,指令存储器15发布WorkRAM写指令,将其提供到工作RAM 16的写使能端子WE,由此将输入数据Din写入到工作RAM 16的地址0的区域,因此将其存储为数据D11。
图3A和3B所示的步骤3描述了进程“滤波器3a计算(D11×C11)”,其中指定数字滤波器3a进行D11×C11的计算。在该进程中,指令存储器15输出选择数字滤波器3a的滤波器选择信号。
另外,指令存储器15指定了与D11相对应的规定地址,作为工作RAM 16的“已存取”地址,因此将已指定的地址施加到工作RAM 16的地址端子A,以指定地址0。同时,指令存储器15发布WorkRAM读指令,将其提供到工作RAM 16的读使能端子RE(未示出),从而从工作RAM 16的地址0的区域读取数据D11。此外,将与C11相对应的其它地址指定为由指令存储器15进行存取的“存储器系数地址”。将存储器系数地址提供到系数存储器13,作为从图4B所示的系数存储器映射读取的地址0,以便从系数存储器13的地址0读取系数C11。将数据D11和系数C11提供到乘法器11,因此实现了数字滤波器3a的计算,即,D11×C11的乘法。
对于从地址计数器14输出的地址(0,1,2,3,...,14和15)进行类似的计算,其中在每一个步骤中递增地址,然后恢复到“0”,从而重复上述指令。这里,与数字信号处理器5的输入信号的采样周期同步地进行其中地址从“0”顺序地变为“15”的一个周期计算。
为了产生图7所示的三阶FIR数字滤波器的输出信号Dout,必须根据以下操作,利用D1x和C1x(其中x=1,2,3)来进行计算:
Dout=D11×C11+D12×C12+D13×C13
因此,外部CPU(未示出)必须具有控制数字信号处理器5的能力,从而当建立数据D1x(其中x=1,2,3)之间的关系时,能够在三个周期内进行前述计算。
即,在计算的第二周期中,将初始存储在地址1的数据传送到地址2;将初始存储在地址0的数据传送到地址1;以及在地址0写入数字滤波器3a的输入数据Din。在计算的第三周期中,将在计算的第二周期中存储在地址1的数据传送到地址1;将在计算的第二周期中存储在地址0的数据传送到地址0;以及在地址0写入当前输入到数字滤波器3a的输入数据Din。
如上所述,在计算的第三周期,将当前输入到数字滤波器3a的输入数据Din写入到地址0;将在当前时刻的一个采样周期T之前预先存储在地址0的数据写入到地址1;以及将在当前时刻的两个采样周期“2T”之前预先存储在地址0的数据写入到地址2。因此,对于分别存储在地址0、地址1和地址2的数据D1x(其中x=1,2,3),外部CPU在工作RAM 16中能够实现移位寄存器功能。
在三个周期的计算完成之后,可靠地将必要数据写入到初始存储不确定数据或之前数据的地址1和地址2。然后,进行前述等式的计算,以产生输出数据Dout。即,外部CPU通过进行三个周期的计算,对于数据D1x(其中x=1,2,3),在工作RAM 16中实现了移位寄存器功能,因此可靠地实现了数字滤波器3a的功能。
如上所述,设计数字滤波器5,以进行多处理,这可能导致当首先开始处理或当通过改变数据来重新开始处理时,在工作RAM 16中仍然剩余了不确定数据或之前的数据。因此,有必要对数字信号处理器5进行初始化。
假设进程A和进程B彼此独立进行。在这种情况下,可以假定下列情况。
(i)进程A处于运行中而进程B停止的第一情况。
(ii)进程B处于运行中而进程A停止的第二情况。
(iii)进程A和进程B都处于操作中的第三情况。
(iv)进程A和进程B都停止的第四情况。
按照本实施例,即使当数字信号处理器5运行到其中进程B停止的第二情况中的第一个计算循环时,其也处理关于数字滤波器3b的指令(见图3A和3B的步骤2,步骤6-8),而不是跳过。即,与其中规定的进程处于运行中还是停止的事件无关,地址计数器14在每个步骤增加地址(地址从0-15顺序变化),以便重复其中的指令。
具体地,数字信号处理器5设置电路(图1中未明确示出),该电路强制将乘法器11的输入置为零,其中关于数据滤波器3b的计算不影响数字信号处理器5的操作结果,因此,数字信号处理器5进行操作以显然跳过数字滤波器3b的处理,因而可以显然实现其中关于数字滤波器3b的进程B停止的第二情况,所以,数字信号处理器5花费了正常的处理时间,即使显然停止了进程B。
图5示出了在相对于工作RAM16中实现的数字滤波器3a,3b和3c区域的不同运行条件下,存储器初始化的开启/关闭状态,其中表达式“停止→运行”指示进程从停止状态变为运行状态,而表达式“运行→停止”指示进程从操作状态变为停止状态。当图5中的“存储器初始化”为“开”时,指令存储器15向逻辑电路18提供设置为“1”存储器初始化使能信号,以使存储器初始化生效。
例如,当在进程A运行的处理中启动进程B时,有必要在工作RAM16中关于进程B的区域中执行初始化而不影响进程A。具体地,图5的列No.10指示了可以对数字滤波器3b的区域进行初始化,而禁止对数字滤波器3a和3c进行初始化。因此,对于数字信号处理器5,有必要仅对工作RAM16中的数字滤波器3b的区域进行初始化。此外,当进程A或进程B正在运行时,不必对工作RAM16中的数字滤波器3c的区域进行初始化。
接下来,将给出关于操作的描述,其中逻辑电路18向门电路17a、17b,和17c输出存储器初始化信号FCin以便初始化工作RAM16的特定区域。
图6示出了用于逻辑电路18在初始化控制方面的真值表,其中符号“*”指定设置到每个列的任意值。为了在进程A的进度期间启动进程B,有必要在启动进程B之前初始化工作RAM16中的数字滤波器3b的区域。优选地,将数字滤波器3b的初始化的定时设置在与进程A无关的处理的时间周期内。即,逻辑电路18输出存储器初始化信号FCin,以便在其中数字滤波器3b的处理开始处于停止而现在处于运行中的时间周期内(即步骤6-8,见图3A和3B),初始化数字滤波器3b的区域。
换句话说,如图6所示,在与步骤6-8相关的时间周期内,其中指令存储器15向逻辑电路18提供声明数字滤波器3的处理现在处于运行中的滤波器选择信号“3b”,外部CPU向逻辑电路18输出设置为“1”的存储器初始化使能信号,由此逻辑电路18针对滤波器选择信号和存储器初始化使能信号执行逻辑运算。结果,逻辑电路18发送设置为“1”的关于数字滤波器3b的区域的存储器初始化使能信号。此时,为了实现D2x×C2x(x=1,2,3)的计算,指令存储器15输出声明数字滤波器3b的处理现在处于进行中的滤波器选择信号“3b”以及分别用于从工作RAM16的地址3、地址4和地址5中读取数据D21、D22和D23的读取指令。
当从逻辑电路18收到设置为“1”的存储器初始化信号FCin时,门电路17a向工作RAM16的输入端子输出“0”;门电路17b向写使能端子WE输出“1”以便使工作RAM16上的写操作生效;以及门电路17c向乘法器11的输入端子Xin输出“0”。附带地,数字信号处理器5中不必包含门电路17c,而最好是当工作RAM16被设计为不在写模式下产生输出数据“0”时,采用门电路17c。
如图5中No.10列所示,在前述的步骤6-8中(见图3A和3B),门电路17a和17b进行初始化,其中响应从逻辑电路18输出的存储器初始化信号FCin,工作RAM16的地址3、地址4和地址5分别被强制写入“0”。然后,数字信号处理器5从工作RAM16的地址3、地址4和地址5读取数据D21、D22和D23(都指示“0”),以便将读出的数据通过门电路17c提供给乘法器11的输入端子Xin。因此,可以完全初始化与工作RAM16中的进程B相关的规定区域,而不会影响进程A。
根据上述的本实施例,数字信号处理器5可以在应当进行初始化的工作RAM16的选定区域上进行初始化,而不会影响当前正在其中进行的全部处理并且不会增加其整个处理时间。
设计本实施例的数字信号处理器5,以实现三阶FIR数字滤波器的功能。当然,本发明可适用于任何类型的数字滤波器,而与其阶数无关。
设计本实施例,以使在重新启动初始停止的规定进程之前,初始化工作RAM16的相应区域。当然,可以按照以下方式修改本实施例:在规定进程刚刚停止后,便进行初始化以便准备进程的重启。在这种情况下,数字信号处理器5可以跳过与指定的数字滤波器相关的规定步骤,显然,在处理中停止该数字滤波器,直到工作RAM16的相应区域被进行初始化之后重启了该进程,因而可以减少总的处理时间。
还可以按照以下方式来修改本实施例:为了防止将不必要的数据作为每个处于停止状态的数字滤波器的滤波器处理的操作结果来输出,自动地初始化工作RAM 16的相应区域。
2.第二实施例
图8是示出了乐声信号产生电路(或乐声产生器)G的结构方框图,该电路采用了依照本发明第二实施例的数字信号处理器100。图9是示出了使用乐声信号产生电路G的便携式电话(例如,移动电话或蜂窝电话)的结构的方框图。
在图9中,参考号101表示在便携电话中控制电路和设备的中央处理单元(即CPU),其中CPU 101进行正常的通信和会话处理以及与游戏程序和类似程序相关的其它处理。参考号102表示存储通信/会话处理程序、游戏程序、音乐再现处理程序等的只读存储器(即ROM)。参考号103表示非易失性随机存取存储器(即RAM),该存储器临时存储在处理的执行期间产生的各种数据。
参考号104表示例如用于输入电话号码的10键单元和各种功能键。参考号105表示例如液晶显示器的显示设备。参考号106表示具有天线107的通信单元,该单元由传输数据来调制载波以便通过天线107将其发送出去。另外,通信单元106解调通过天线107接收的输入信号,以便将解调的输入信号输出到CPU 101和/或声音处理单元108。声音处理单元将与麦克风109拾取的声音相对应的音频信号转换为数字信号,其中声音处理单元压缩数字数据以产生传送数据,然后,将这些数据提供给通信单元106。另外,声音处理单元108解压来自通信单元106的“已压缩”音频数据,并将其转换成模拟音频信号,然后,将这些信号提供给扬声器110。乐声信号产生电路G产生关于游戏音效音乐、听众欣赏的音乐篇章等各种类型的乐声信号。将乐声信号提供给扬声器116。
接下来,将参考图8来描述乐声信号产生电路G的细节。
在图8中,参考号112表示临时存储各种数据和控制指令的缓冲寄存器,通过总线B将这些数据和指令从CPU 101提供到缓冲寄存器,然后将其提供到声源电路113和数字信号处理器的内部电路。当通过缓冲寄存器112从CPU 101收到来电旋律产生指令时,所述声源电路113产生表示来电旋律的数字乐声信号(即PCM数据)。当接收到游戏音效音乐产生指令时,声源电路113产生关于游戏音效音乐的PCM数据。数字信号处理器100能够将规定音效、三维(3D)音效、宽立体声音效等融入到数字乐声信号中,以便将这些融入音效的音乐乐声信号提供给数字模拟转换器(DAC)115。DAC 115将数字乐声信号转换为模拟乐声信号,然后,提供给扬声器116。
在数字信号处理器100中,参考号121表示数据RAM,该RAM临时存储从声源电路113输出的脉冲编码的调制数据(或PCM数据),以便根据从程序RAM 122输出的程序向运算电路123提供所存储的数据。运算电路123根据从程序RAM 122输出的程序,对从数据RAM121输出的PCM数据进行计算(如,代数运算和/或逻辑运算)。这里,利用从系数RAM 125输出的系数来执行计算。运算电路123通过选择器127向工作RAM 126输出运算进行中间的数据(或计算中断数据),其中将计算中断数据写入工作RAM 126中由前述程序指定的地址处。另外,运算电路123利用从工作RAM 126中由该程序指定的地址处读取的数据来进行计算。
参考号124表示缓冲存储器,临时存储来自运算电路123的PCM数据并在时钟脉冲信号CLK1限定的时间将其输出到DAC 15。时钟脉冲信号CLK1包括其频率与PCM数据的采样频率(例如48kHz)相匹配的脉冲。
程序RAM 122存储诸如音效程序、三维音效程序、宽立体声音效程序的程序,可以根据从CPU 101输出的规定程序来重写每一个程序。每个程序含有多个步骤,每一步骤进一步包含针对数据RAM 121的读/写地址、针对运算电路123的运算指令和针对工作RAM 126的读/写地址。
程序RAM 122能够最多存储768个程序步骤,其中根据从程序计数器128输出的地址,顺序地读出程序步骤。假设将音效程序存储在地址0到地址150之间限定的区域,而将三维音效程序存储在地址151到地址767之间限定的区域,其中程序计数器128顺序地增加其计数值并将计数输出到程序RAM 122的地址端子。根据程序计数器128的计数值,首先读取音效程序,以便将规定的音效融入到从数据RAM 121输出的PCM数据。然后,读取三维音效程序,以便将三维音效融入到音效融入的PCM数据上。
系数RAM 125预先存储用于在运算电路123内执行的计算的系数。具体地,其存储与存储在程序RAM 122中的程序的768个步骤相对应的总共768个系数。即,程序计数器128重复地从0到767计数,以响应其频率如下计算的时钟脉冲信号CLK2:
48kHz×768=36.864MHz
接下来,将给出关于工作RAM 126及其寻址电路的描述。
将工作RAM126配置为能够存储8千个字的8k字RAM,如图10所示,将其整个区域分为“连续的”32个子区域(每个存储256个字)#0到#31。单个程序占用以子区域为单位的工作RAM 126的一部分。假设音效程序占用四个子区域,三维音效程序占用三个子区域,其中通常将这些程序分配给连续的子区域。例如,将音效程序分配到子区域#0、#1、#2和#3,而将三维音效程序分配到子区域#4、#5和#6。然而,由于处理的需要(或由于程序的改变),不可能始终将每个程序分配到连续的子区域。例如,将音效程序分配到子区域#0、#1、#10和#20,而将三维音效程序分配到子区域#2、#5和#28。即,不必将每个程序分配到连续的子区域。
程序RAM 122指定了用于工作RAM 126的读/写地址,其中其输出相对地址“SA”,在加法器131内将“SA”与地址计数器(AC)132的输出(即,绝对地址)相加并且转换为绝对地址(或物理地址)。通过选择器133将绝对地址作为读/写地址提供到工作RAM 126的地址端子。
本实施例使用相对地址的原因如下:
运算电路123进行有关滤波器的计算,例如,有关如图7所示的FIR滤波器的计算。这里,有必要根据由时钟脉冲信号CLK1所限定的定时,将寄存器Rg11的数据传送到寄存器Rg12,并且将寄存器Rg12的数据传送到寄存器Rg13。然而,当根据软件程序执行这种数据转移操作时,必须在程序中提供大量步骤,这最终会增加处理时间。因此,设计本实施例,以使实际上不对数据进行单地址转移,而是以反向对相对地址进行单地址转移,由此实现了与数据转移的相同效果。图11示出了这种情况,其中当每一次时钟脉冲信号CLK1的一个周期(指“1fs”)过去时,将在特定fs定时处初始指定了工作RAM 126的绝对地址的地址计数器(AC)132的输出自动地移到作为当前地址之前的一个绝对地址(或一个物理地址)的在先地址中。假设地址计数器132当前指定了绝对地址#1003;然后,在当前定时的1fs之后的1fs后定时处,地址计数器132指定了绝对地址#1002;之后,在当前定时的2fs之后的2fs后定时处,地址计数器132指定了绝对地址#1001。附带地,将地址计数器132指定的当前地址称为相对地址0。
接下来,将给出有关初始化电路140的描述,初始化电路140对由CPU 101指定的工作RAM 126的子区域进行初始化。
初始化电路140包括寄存器141、已初始化子区域确定电路142、地址转换电路143、加法器144、计数器(CNT)145、地址计数器(AC)更新检测电路146、与门单元147和存取决定电路148。
寄存器141是32位寄存器,CPU 101向其中写入指定了要初始化子区域的数据。例如,当CPU 101指定了要初始化的子区域#0、#1、#10和#20时,将以下32位数据写入到寄存器141中。
“11000000001000000000100000000000”
在上述数据中,每一位对应于每一个子区域,其中按照顺序#0,#1,#2,...,和#31,分别将从最高有效位(MSB)到最低有效位(LSB)计数的32位分配给不同的子区域。这里,将表示应当进行初始化的子区域的每一个规定位设置为“1”。
如上所述,每一个子区域的绝对地址根据地址计数器132的输出(即,绝对地址)顺序地进行改变。例如,设置于子区域#0的相对地址通常范围是“0”到“255”,如图11所示,在当前定时处,对应的绝对地址范围从#1003到#1258;在1fs后定时处,其范围从#1002到#1257;以及在2fs后定时处,其范围从#1001到#1256。
已初始化子区域确定电路142顺序地从其最左端位置输入存储在寄存器141的数据位,以便确定应当已经初始化的已初始化子区域,从而将在其中确定的已初始化子区域的编号输出到地址转换电路143。例如,已初始化子区域确定电路142将表示子区域#0的编号的“0”输出到地址转换电路143。当计数器145的计数值到达“256”时,已初始化子区域确定电路142检测到规定子区域的初始化完成,由此将设置给寄存器145的对应位位置的数值从“1”返回到“0”。然后,已初始化子区域确定电路142根据存储在寄存器141中的数据,进行应当进行初始化的下一个子区域,以便将表示下一个已初始化子区域的编号输出到地址转化电路143。在这种情况下,其将表示子区域#1的编号的“1”输出到地址转换电路143。
由于每个子区域包括256个字并且连续地划分所有子区域,地址转换电路143将从已初始化子区域确定电路142输出的子区域编号转换为指定子区域的顶端地址(即,相对地址)EA,然后将其提供到加法器144。例如,当已初始化子区域确定电路142输出“0”时,将顶端地址EA设为相对于子区域#0的“0”;当其输出“1”时,将顶端地址EA设为相对于子区域#1的“256”;以及当其输出“10”时,将顶端地址EA设为相对于子区域#10的“2560”。
计数器145能够在计数中进行256次增加并且在初始化启始定时处清除计数。然后,当每一次存取决定电路148产生表示非存取的非存取信号AN时,计数器145重复进行增计数。当计数值到达“256”时,清除计数器145,以使计数值自动地返回“0”。
AC更新检测电路146检测其中更新地址计数器132的事件,由此输出“1”。与门单元147包括与计数器145的输出数据的位的数目相对应的多个门,其中每一个门接收计数器145的输出数据的每一位。通常响应从AC更新检测电路146输出的“0”,关闭所有的与门147,从而直接将计数器145的输出传送到加法器144。在计数中更新地址计数器132的情况下,AC更新检测电路146的输出变为“1”,与门单元147输出“0”。
加法器144将地址计数器132的计数值、关于进行了初始化的子区域的顶端地址EA和与门147单元的输出(通常于计数器145的输出相对应)相加到一起,由此产生指定了要进行初始化地址的地址数据AD。将地址数据AD通过选择器133提供给工作RAM的地址端子。存取决定电路148通常在由时钟脉冲信号CLK2限定的定时处,检查从相对于工作RAM 126的程序RAM 122输出的相关地址SA。当程序RAM 122没有输出相对地址SA时,换句话说,当程序RAM 122的程序不需要存取工作RAM 126时,存取决定电路148输出非存取信号AN。
接下来,将详细描述具有图8所示的上述结构的乐声信号产生电路G的全部操作。
假设在初始状态,程序RAM 122在范围从地址0到地址150的区域中存储效果程序,还在范围从地址151到地址767的区域中存储三维音效程序。另外,系数RAM 125在范围从地址0到地址150的区域中存储用于效果程序的系数,还在范围从地址151到地址767的区域中存储用于三维音效程序的系数。
当CPU 101将来电旋律产生指令输出到声源电路113时,声源电路113产生关于来电旋律的数字乐声信号(即,PCM数据),并将其提供到数字信号处理器100。将PCM数据临时地存储在数据RAM 121中,而同时,程序计数器128响应时钟脉冲信号CLK2开始增计数。当程序计数器128根据时钟脉冲CLK2开始增计数时,从程序RAM122读取规定的程序,以便将对应步骤顺序地传送到数据RAM 121和运算电路123,同时在加法器将包括在程序步骤中的用于存取工作RAM 126的相对地址SA与地址计数器132的输出(即,绝对地址)相加,以便将相加结果提供到工作RAM 126的地址端子,从而指定“已存取的”绝对地址。同时,响应程序计数器128的计数值,从系数RAM 125中对应地读取系数,以便将其提供到运算电路123。
运算电路123利用系数,根据程序,对从数据RAM 121输出的数据进行计算。此时,运算电路123临时将其输出数据(或其计算中断数据)写到工作RAM 126中;然后,其利用临时存储的数据再次进行计算。一次性地将运算电路123的运算结果写入到缓冲存储器124中,然后,在由时钟脉冲信号CLK1限定的定时处,将其通过缓冲存储器124提供到DAC 115。DAC 115将数据转换为模拟信号,然后将其提供给扬声器116。
接下来,将参考图11和图12,对工作RAM 126的子区域的初始化操作进行描述。
首先,CPU 101将表示对子区域进行初始化的数据写入到寄存器141中,然后,清除计数器145。一旦清除了计数器145,在程序不需要存取工作RAM 126的定时,对子区域进行初始化。
假设CPU 101将数据写入到寄存器141,从而命令对子区域#0、子区域#1、子区域#20和子区域#30进行初始化。在这种情况下,已初始化子区域确定电路142将表示子区域#0的“0”输出到地址转换电路143,以使地址转换电路143产生被置为“0”的顶端地址EA(即,相对地址),将其提供带加法器144。此外,计数器145输出“0”,将其通过与门单元147发送到加法器144。结果,加法器144进行如下的加法:
AD=AC+0+0
(其中“AC”表示地址计数器132的输出)
因此,加法器144产生被提供到选择器133的地址数据AD。在这种情况下,地址计数器132当前在工作RAM126中指定绝对地址#1003。
当存取决定电路148在程序RAM 122不输出相对地址SA的定时处输出非存取信号AN时,切换选择器133,以便将地址数据AD提供到工作RAM 126的地址端子。同时,切换选择器127,以便将“0”(用于初始化)提供到工作RAM 126的数据输入端子,并将其写入到子区域#0的相对地址0,由此对相对地址0进行初始化,以便对工作RAM126的绝对地址#1003进行初始化。附带地,将从地址0到地址255进行计数的256个地址分配给每一个子区域,作为有关每个子区域的相对地址。当存取决定电路148输出非存取信号AN时,计数器145进行增计数,以便输出“1”,通过与门单元147将其输出到加法器144。
接下来,当递增程序计数器128以便从程序RAM 122中读取程序的下一个步骤时,存取决定电路148再次输出非存取信号AN,从而利用选择器133将下一个地址数据AD(其中AD=AC+0+1)提供给工作RAM 126的地址端子,同时利用选择器127将“0”(用于初始化)提供到工作RAM 126的数据输入端子;因此,初始化了子区域#0的相对地址1,以使工作RAM 126的绝对地址#1004进行了初始化。
类似地,对子区域#0的相对地址2进行初始化,因此对工作RAM126的绝对地址#1005进行初始化。在图11中,当前定时示出了在子区域#0的地址0、地址1和地址2上完成了初始化的情况,其中黑园标记表示初始化完成的地址。在此定时处,更新地址计数器132,以便由一次寻址(即,从绝对地址#1003返回到绝对地址#1002的寻址)来更新绝对地址(AC),从而转移进行了初始化的下一个绝对地址并由一次寻址进行更新,这由图11中的“1fs后定时”表示。此时,计数器输出“3”,同时地址计数器更新检测电路146输出“1”,以使与门单元147的输出变为“0”,将其提供到加法器144。因此,加法器144如下产生地址数据AD:
AD=AC+0+0
当存取决定电路148再次输出非存取信号AN时,再次初始化工作RAM 126的子区域#0的地址0。图11明显地示出了相对地址0针对工作RAM 126的绝对地址#1002,其不同于绝对地址#1003(在更新地址计数器132之前由相对地址0指定),因此其是非初始化地址。当进行初始化时,计数器145输出“4”,且AC更新检测电路146的输出返回到“0”。结果,与门单元147将“4”输出到加法器144,加法器144依次如下产生地址数据AD:
AD=AC+0+4
当存取决定电路148再次输出非存取信号AN时,初始化工作RAM 126的子区域#0的地址4,从而对工作RAM 126的绝对地址#1006进行了初始化。然后,重复相同的处理。当在其中已初始化子区域#0的相对地址253的定时来再次更新地址计数器132时,AC更新检测电路146输出表示地址计数器132的更新的“1”,因此与门单元147输出“0”。因此,再次已初始化子区域#0的相对地址0,从而对工作RAM 126的绝对地址#1001进行了初始化。图11中的“2fs后定时”示出了这种情况。之后,已初始化子区域#0的相对地址255,从而对工作RAM 126的绝对地址#1255进行了初始化,因此,子区域#0的初始化完成。
当计数器145的计数值到达“256”(指示完成了子区域#0的初始化)时,已初始化子区域检测电路142检测到该事件,从而清除寄存器141中表示子区域#0的位;然后,已初始化子区域检测电路142进行已进行初始化的下一个子区域的确定。在这种情况下,当其确定子区域#1是下一个已初始化子区域时,将表示子区域#1的“1”输出到地址转换电路143。当接收到“1”时,地址转换电路143将子区域#1的顶端地址EA“256”(相对地址)输出到加法器144。当计数“256”之后,清除计数器145。之后,与子区域#0相似,逐一顺序地初始化子区域#1的相对地址,从而彻底地初始化了子区域#1的全部区域。
如上所述,当更新地址计数器132时,首先初始化“已更新”子区域的相对地址0;然后,根据计数器145的计数值来进行初始化。这是因为当直接根据已更新的计数器145的输出进行初始化时,必须保持相对地址0的不初始化。
图12是示出了初始化处理的流程图,其内容在上文进行了描述。
在步骤S1,初始化电路140指定了进行初始化的子区域,并清除寄存器141。然后,流程经过步骤S2、S3和S6进行到步骤S7,其中初始化了用于指定子区域的绝对地址(AC+EA+CNT)。这里,“CNT”表示计数器145的计数值。然后,流程进行到其中计数器145递增的步骤S9。在完成了步骤S9之后,流程再次经过步骤S3和S6返回到步骤S7,其中对子区域进行初始化。
重复进行上述步骤S3、S6、S7和S9。当更新地址计数器132时,步骤S6的决定结果变为“是”,以使流程进行到对子区域进行初始化的步骤S8。之后,重复进行步骤序列S9、S3、S6和S7。当计数器145的计数值到达“256”时,步骤S3的决定结果变为“是”,以使流程进行到其中清除计数器145的步骤S4。然后,在步骤S5,将数据的规定位存储在寄存器141中,以指明清除了上述子区域。之后,流程进行到步骤S2,确定是否完全地初始化了由寄存器141的数据指定并且应当进行初始化的所有子区域。当确定结果是“否”时,重复进行从步骤S3开始的步骤序列。当步骤S2的确定结果变为“是”时,初始化电路140结束其初始化处理。
3.第三实施例
接下来,将详细描述本发明的第三实施例。
第二实施例可能会存在较小的技术问题,在子区域#0的初始化完成之后,当地址计数器132的输出在子区域#1的初始化过程中间出现变化时,初始化子区域#1的相对地址0,而使子区域#0的相对地址0保持未初始化。设计第三实施例,以解决第二实施例的上述问题。
图13是示出了包括根据本发明第三实施例的数字信号处理器200的乐声信号产生电路G1的结构的方框图,其中相同参考号指明了与图8所示的相同部分;因此,省略其描述。图13的乐声信号产生电路G1与图8的乐声信号产生电路G的不同之处在于初始化电路240的结构。与图8所示的初始化电路140相比,图13所示的初始化电路240附加地采用了其结构与寄存器141相同的寄存器201和用于选择性地将寄存器141的输出或寄存器201的输出输出到已初始化子区域确定电路142的选择器203。
接下来,参考图14,对第三实施例中的工作RAM 126的初始化处理进行描述。
图14是示出了由初始化电路240对工作RAM126进行的初始化处理的流程图。在步骤Sa1,CPU 101将指定了要进行初始化的子区域的数据写入到寄存器141和寄存器201中。在步骤Sa2,初始化电路240相对于每一个地址,对所指定的子区域顺序地进行初始化。当完成了一个子区域的初始化时,清除寄存器141的数据中指定了已初始化子区域的规定位(初始设为“1”),而不清除寄存器201的数据的对应位(设为“1”)。当更新地址计数器132时,初始化电路240根据寄存器201的数据检测当前正在进行初始化的子区域,以便在步骤SA3初始化每个子区域的相对地址0。
参考图15,详细描述上述初始化处理。
为了初始化子区域#0和#1,例如,CPU 101将命令对子区域#0和#1进行初始化的32位数据分别写入到寄存器141和201中;然后,清除计数器145。此时,AC更新检测电路146将“0”输出到选择器203,选择器203依次选择性地将寄存器141的数据输出到已初始化子区域确定电路142。
与第二实施例相同,第三实施例对子区域#0进行初始化,其中顺序地对位进行初始化。当子区域#0的初始化完成之后,清除寄存器141的数据中指定了子区域#0的规定位,而不清除寄存器201的数据的对应位(初始设为指定了子区域#0的“1”)。然后,初始化进行到子区域#1的相对地址2(见图15中关于当前定时的黑圆)。此时,更新地址计数器,以使AC更新检测电路146输出“1”,由此与门单元147将“0”输出到加法器144。此外,选择性地将寄存器201的数据经过选择器203提供到已初始化子区域确定电路142,选择器203响应从AC更新检测电路146输出的“1”进行切换。
已初始化子区域确定电路142根据寄存器201的数据,检测进行了初始化的子区域,由此输出表示“已初始化”子区域#0和#1的“0”和“1”。当已初始化子区域确定电路142输出“0”时,地址转换电路143对应地输出“0”作为表示子区域#0的顶端地址的顶端地址EA,由此加法器144进行“AC+0+0”的计算,以产生地址数据AD。在存起决定电路148再次输出非存取信号AN的下一个定时处,初始化工作RAM 126的子区域#0的相对地址0。之后,当已初始化子区域确定电路142输出“1”时,地址转换电路143对应地输出“256”作为表示子区域#1的顶端地址的顶端地址EA。因此,加法器144进行“AC+256+0”的计算,以产生地址数据AD。在存取决定电路148再次输出非存取信号AN的下一个定时处,初始化工作RAM 126的子区域#1的相对地址0。图15中的“1fs后定时”示出了这种情况。
当在初始化进行到子区域#1的相对地址2的定时处更新地址计数器132时,初始化没有进行到下一个地址3,而是顺序地对子区域#0的相对地址0和子区域#1的相对地址0进行初始化。在该初始化期间,门电路(未示出)使计数器145停止相对于非存取信号AN进行增计数。当初始化完成时,再次递增计数器145,AC更新检测电路146的输出返回“0”。之后,对子区域#1的后续地址(从相对地址4开始)顺序地进行初始化。附带地,子区域#1的上述地址3对应于图15中1fs后定时处的绝对地址#1261,其中已经在更新地址计数器132之后立即对其进行了更新。
当在子区域#1的相对地址253的初始化完成之后更新地址计数器132时,在对子区域#1的相对地址254进行初始化的定时处,对子区域#0的相对地址0和子区域#1的相对地址0顺序地进行初始化;然后,对子区域#1的后续地址(从相对地址255开始)进行初始化。
最后,可以将本发明的数字信号处理器用于例如蜂窝电话的便携式终端设备中采用的任意类型的乐声信号产生电路。
由于在不脱离其精神或本质特征的前提下,可以按照多种形式来体现本发明,因此,本实施例是演示性而非限制性的,由于由所附权利要求而不是上述描述来限定本发明的范围,因此,权利要求包含了在权利要求范围的边界之内的所有变化或这种边界的等同物。
Claims (11)
1.一种数字信号处理器,包括:
数据存储器,能够以可重写的方式存储多个数据;
运算电路,用于根据从数据存储器读取的数据来进行计算;
写电路,用于强制将“0”写入到数据存储器的指定地址中;以及
逻辑电路,用于当对与数据存储器的特定地址相对应的存储区域进行写操作时,驱动所述写电路。
2.根据权利要求1所述的数字信号处理器,其特征在于所述数据存储器是具有输入端子、地址端子、写使能端子和输出端子的工作随机存取存储器。
3.根据权利要求2所述的数字信号处理器,其特征在于写电路包括用于将“0”输入到输入端子的第一电路和用于将写使能信号输入到写使能端子的第二电路。
4.一种数字信号处理器,包括:
程序存储器,用于存储程序;
运算电路,用于根据程序进行计算;以及
数据存储器,用于临时存储用于计算的数据,其中,根据程序将所述数据存储器分为分别由读/写操作中的地址所指定的多个子区域;
寄存器,用于存储指定在数据存储器的子区域中进行初始化的规定子区域的数据;
地址产生器,用于产生指定在数据存储器中进行初始化的规定子区域的地址的地址数据;
非存取检测器,用于检测其中程序不需要存取数据存储器的非存取事件;以及
写电路,用于当检测到非存取事件时,根据地址数据,强制将“0”写入到数据存储器。
5.根据权利要求4所述数字信号处理器,其特征在于所述数据存储器是具有输入端子、地址端子、写使能端子和输出端子的工作随机存取存储器,以及,当检测到非存取事件时,将指定规定地址的地址数据提供到地址端子,并写电路针对规定的地址将“0”写入到输入端子。
6.根据权利要求4所述的数字信号处理器,其特征在于地址数据产生器包括顶端地址产生器,用于根据寄存器的数据产生用于规定子区域的顶端地址;以及计数器,用于当每一次非存取检测器检测到非存取事件时,增加其计数值,由此根据顶端地址和计数值来产生地址数据。
7.一种数字信号处理器,包括:
程序存储器,用于存储程序;
运算电路,用于根据程序进行计算;
数据存储器,用于临时存储计算中使用的数据,其中,根据程序将所述数据存储器分为分别由读/写操作中的相对地址所指定的多个子区域;
地址计数器;
绝对地址产生器,用于根据相对地址和地址计数器的计数值来产生绝对地址;
寄存器,用于存储指定在数据存储器中进行初始化的规定子区域的数据;
地址数据产生器,用于根据寄存器的数据,产生指定进行初始化的规定子区域的相对地址的地址数据;
非存取检测器,用于检测其中程序不需要存取数据存储器的非存取事件;
写电路,用于当检测到非存取事件时,根据地址数据,强制将“0”写入到数据存储器中;以及
“0”提供器,用于响应地址计数器的计数值的改变,将“0”提供给写电路。
8.根据权利要求7所述的数字信号处理器,其特征在于所述数据存储器是具有输入端子、地址端子和输出端子的工作随机存取存储器,以及,当检测到非存取事件时,将地址数据提供到地址端子,写电路将“0”输入到输入端子。
9.一种数字信号处理器,包括:
程序存储器,用于存储程序;
运算电路,用于根据程序进行计算;
数据存储器,用于临时存储计算中使用的数据,其中,根据程序将所述数据存储器分为分别由读/写操作中的相对地址所指定的多个子区域;
地址计数器;
绝对地址产生器,用于根据相对地址和地址计数器的计数值来产生绝对地址;
第一寄存器,用于存储指定进行初始化的规定子区域的数据;
第二寄存器,用于存储与第一寄存器相同的数据;
地址数据产生器,用于根据第一寄存器的数据,产生与指定进行初始化的规定子区域的相对地址相对应的地址数据,其中当完成了规定子区域的初始化时,清除第一寄存器的数据;
非存取检测器,用于检测其中程序不需要存取数据存储器的非存取事件;
写电路,用于当检测到非存取事件时,根据地址数据,强制将“0”写入到数据存储器中;以及
初始化电路,用于响应地址计数器的计数值的变化,对于由第二寄存器的数据指定的每一个子区域,初始化相对地址0。
10.根据权利要求9所述的数字信号处理器,其特征在于所述数据存储器是具有输入端子、地址端子和输出端子的工作随机存取存储器,并且当检测到非存取事件时,将地址数据提供到地址端子,写电路将“0”输入到输入端子。
11.根据权利要求1、4、7和9之一所述的数字信号处理器,其特征在于还包括指令存储器,用于存储包括关于读操作的步骤和在数据存储器上进行的写操作的步骤的列表,其中由列表中包括的预定步骤来定义在进行初始化的数据存储器的特定区域上进行的写操作。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003385234 | 2003-11-14 | ||
JP2003385234 | 2003-11-14 | ||
JP2004240705 | 2004-08-20 | ||
JP2004240705 | 2004-08-20 | ||
JP2004297983 | 2004-10-12 | ||
JP2004297983 | 2004-10-12 | ||
JP2004323735 | 2004-11-08 | ||
JP2004323735A JP4661169B2 (ja) | 2003-11-14 | 2004-11-08 | ディジタルシグナルプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1617259A true CN1617259A (zh) | 2005-05-18 |
CN100437825C CN100437825C (zh) | 2008-11-26 |
Family
ID=34682255
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100957349A Expired - Fee Related CN100437825C (zh) | 2003-11-14 | 2004-11-12 | 数字信号处理器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7543130B2 (zh) |
JP (1) | JP4661169B2 (zh) |
CN (1) | CN100437825C (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4856208B2 (ja) | 2009-03-30 | 2012-01-18 | 株式会社東芝 | 半導体装置 |
JP2011130136A (ja) * | 2009-12-17 | 2011-06-30 | Rohm Co Ltd | 画像処理回路 |
KR102182368B1 (ko) * | 2013-12-19 | 2020-11-24 | 에스케이하이닉스 주식회사 | 어드레스 검출회로 및 이를 포함하는 메모리 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4247905A (en) * | 1977-08-26 | 1981-01-27 | Sharp Kabushiki Kaisha | Memory clear system |
JPS5834490A (ja) | 1981-08-25 | 1983-02-28 | 三菱電機株式会社 | デイスプレイ装置 |
JPS62109284A (ja) * | 1985-11-06 | 1987-05-20 | Fujitsu Ltd | メモリクリア方式 |
US5117493A (en) * | 1989-08-07 | 1992-05-26 | Sun Microsystems, Inc. | Pipelined register cache |
JPH0390942A (ja) * | 1989-09-01 | 1991-04-16 | Oki Electric Ind Co Ltd | 主記憶装置の制御方式 |
JPH03105640A (ja) * | 1989-09-20 | 1991-05-02 | Fujitsu Ltd | メモリクリア制御方式 |
JPH0464155A (ja) | 1990-07-04 | 1992-02-28 | Toshiba Corp | メモリ制御方式 |
JPH07312081A (ja) * | 1994-05-18 | 1995-11-28 | Fujitsu Ltd | ランダム・アクセス・メモリ回路 |
JPH08161216A (ja) * | 1994-12-09 | 1996-06-21 | Toshiba Corp | メモリ高速クリア機能を持つ情報処理装置 |
US6578123B1 (en) * | 1995-04-14 | 2003-06-10 | Texas Instruments Incorporated | Relocatable overland peripheral paging |
US5826072A (en) * | 1995-11-13 | 1998-10-20 | Oasis Design, Inc. | Pipelined digital signal processor and signal processing system employing same |
US5822334A (en) * | 1996-01-05 | 1998-10-13 | Unisys Corporation | High speed initialization system for RAM devices using JTAG loop for providing valid parity bits |
US5943689A (en) * | 1997-03-31 | 1999-08-24 | Emc Corporation | On-demand initialization of memory locations as they are requested command |
US6341342B1 (en) * | 1997-11-04 | 2002-01-22 | Compaq Information Technologies Group, L.P. | Method and apparatus for zeroing a transfer buffer memory as a background task |
DE69925720T2 (de) * | 1998-03-18 | 2006-03-16 | Qualcomm, Inc., San Diego | Digitaler signalprozessor zur reduzierung des zugriffswettbewerbs |
JP2001005721A (ja) * | 1999-06-17 | 2001-01-12 | Nec Ic Microcomput Syst Ltd | Dspによるリング・バッファ用メモリ確保によるフィルタ処理方法及びそのフィルタ処理システム |
JP2003131935A (ja) * | 2001-10-25 | 2003-05-09 | Nec Microsystems Ltd | シンクロナスdramコントローラおよびその制御方法 |
JP2003216484A (ja) * | 2002-01-18 | 2003-07-31 | Nec Custom Technica Ltd | 駆動能力設定方法、駆動能力設定プログラム及び駆動回路 |
-
2004
- 2004-11-08 JP JP2004323735A patent/JP4661169B2/ja not_active Expired - Fee Related
- 2004-11-10 US US10/986,525 patent/US7543130B2/en not_active Expired - Fee Related
- 2004-11-12 CN CNB2004100957349A patent/CN100437825C/zh not_active Expired - Fee Related
-
2008
- 2008-06-16 US US12/214,213 patent/US20080263268A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20080263268A1 (en) | 2008-10-23 |
JP4661169B2 (ja) | 2011-03-30 |
JP2006139321A (ja) | 2006-06-01 |
CN100437825C (zh) | 2008-11-26 |
US20050138275A1 (en) | 2005-06-23 |
US7543130B2 (en) | 2009-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kuo | Digital Signal Processors: Architectures, Implementations, And Applications (With Cd) | |
CN1287276C (zh) | 用于环缓冲数字信号处理指令的方法和装置 | |
GB2474901A (en) | Multiply-accumulate instruction which adds or subtracts based on a predicate value | |
CN1413326A (zh) | 在专用信号处理器中用于饱和乘法和累加的方法和装置 | |
CN109272995A (zh) | 语音识别方法、装置及电子设备 | |
Gan et al. | Embedded signal processing with the micro signal architecture | |
CN1617259A (zh) | 数字信号处理器 | |
CN1716228A (zh) | 处理器 | |
Gan et al. | Teaching DSP software development: from design to fixed-point implementations | |
CN1160905A (zh) | 具有兼容软件模块的计算机化乐器 | |
CN1529858A (zh) | 计算系统 | |
CN1288908C (zh) | 记录/再现与视频或音乐有关的操作信息的设备和方法 | |
CN1612205A (zh) | 音频信号处理器 | |
KR0147758B1 (ko) | Mpeg-2 오디오 복호화기의 합성 필터 | |
US5442125A (en) | Signal processing apparatus for repeatedly performing a same processing on respective output channels in time sharing manner | |
TWI802064B (zh) | 為工作站篩選派工規則的電子裝置和方法 | |
CN114428630B (zh) | 芯片算法升级方法、装置和芯片 | |
CN116991670A (zh) | Dcs控制器及其审计日志记录方法和系统 | |
JP3371643B2 (ja) | 信号処理装置 | |
CN1630292A (zh) | 在硬件上处理多工子层数据单元数据的方法与装置 | |
CN117724912A (zh) | 芯片fpga原型验证的目标触发点确定系统 | |
CN116227169A (zh) | 一种助听器算法仿真方法 | |
KR101462157B1 (ko) | Mac 연산을 포함하는 연산 장치, 이를 이용한 dsp 구조 및 필터링 방법 | |
CN114443151A (zh) | 一种轮询方法、装置及计算机可读存储介质 | |
WO2023049593A1 (en) | Permutation instruction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1072494 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1072494 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081126 Termination date: 20151112 |
|
EXPY | Termination of patent right or utility model |