数字信号处理芯片中的 循环执行控制电路 本发明涉及数字信号处理芯片,特别涉及,循环执行数为0时,能防止出现错误的数字信号处理芯片中的循环执行(Loop?execution)控制电路,以缩短实现整个算法的执行时间,并减小程序存贮器的消耗。
数字信号处理芯片多用在需要进行大量算法计算的许多领域,即,音频编码译码器、消除回声等。在这些领域的算法中,很多部分用到循环(Loop)。这里是指执行固定次数的循环的情况,但在许多情况下,循环被重复不同的次数。大多数数字信号处理芯片把循环执行次数输入控制寄存器中,之后,指定部分由输入次数重复。而且,当循环被重复可变次数时,经?;岢鱿盅分葱惺?的输入情况。此时,用一个存在的数字信号处理芯片执行循环,之后因控制寄存器的值随意变化,由此,产生了错误,即,当循环执行数为0时,即,输入给控制寄存器的循环执行数为0时,常规的数字信号处理芯片产生错误。更具体地说,当循环执行数为0时,一旦执行循环,之后,控制寄存器具有其最大值,因此,产生错误。为了防止产生错误,在循环重复次数变化的情况下,常规地数字信号处理芯片必须总是执行检查循环执行数是否为0的例行程序。
为解决上述问题,本发明的目的是提供一种数字信号处理芯片中循环执行控制电路,它能防止循环执行数为0时产生错误,并能缩短实现整个算法时的执行时间,防止程序存贮器消耗。
而且,为实现上述目的,提供了一种数字信号处理芯片中的循环执行控制电路,包括:最低有效位状态检测单元,当在加载循环执行数的计数寄存器中每一位状态的检测结果,除最低有效位之外的每一位是0时,根据最低有效位和第一和第二信号的状态,用于输出具有预定电平的有效信号;条件时钟输出单元,用于接收时钟信号和第一和第二信号,只在第一和第二信号有效时,才输出时钟信号;和结束条件信号输出单元,当从条件时钟输出单元输出的信号有效时,用于输出最低有效位状态检测单元的输出信号。
最好第一信号是循环结束信号,当满足循环结束条件时该循环结束信号变为有效,第二信号是比较器加载信号,当最终循环指令地址和随后进行的指令地址被加到循环比较器上时,该比较器加载信号变为有效。
最低有效位状态检测单元最好包括:多个彼此串联连接的PMOS栅,其中除计数寄存器中的最低有效位之外,每个栅分别连接到其余位的输出端口;第一“与”门,根据计数寄存器中的最低有效位的输出端口的输出和比较器加载信号,执行“与”操作;第二“与”门,根据计数寄存器中的最低有效位的输出端口的输出和循环结束信号执行“与”操作;“或”门,根据第一和第二“与”门的输出执行“或”操作;和PMOS栅,它串联连接到多个PMOS栅上,用于接收“或”门的输出和输出有预定电平的有效信号。
条件时钟输出单元最好包括:第一“与”门用于按时钟信号和比较器加载信号进行“与”操作;第二“与”门,用于按时钟信号和循环结束信号进行“与”操作;和“或”门,用于按第一和第二“与”门的输出进行“或”操作。
结束条件信号输出单元最好是“与”门,用于按条件时钟输出单元的输出信号和最低有效位状态检测单元的输出信号进行“与”操作。
通过结合附图对最佳实施例的详细说明,本发明的上述目的和优点将显而易见。
图1是程序执行顺序控制电路的方框图,它采用了本发明的数字信号处理芯片中的循环执行控制电路;
图2是执行循环的处理流程图;
图3是本发明的数字信号处理芯片中的循环执行控制电路。
图1所示的程序执行顺序控制电路中,数据存贮器数据总线是路径,沿该路径能通过各种数据。计数寄存器单元10包括加载了循环执行数的计数寄存器和本发明的循环执行控制电路,并输出条件结束信号CE。计数栈(counter?stack)14是一个寄存器,需要时,它存贮计数寄存器单元10的计数寄存器的值。多路复用器12多路复用计数栈14的输出和数据存贮器数据总线的数据。循环栈16是一个寄存器,它存贮有最终执行指令的地址,和暂停循环的结束条件。循环比较器19比较每个时钟中有循环最终指令的地址与程序序列器(未示出)产生的下一个地址。条件逻辑18考虑从计数寄存器单元10输出的结束条件信号CE和工作状态,并影响地址发生器。
图2是说明处理的流程图,用该流程执行图1所示程序执行顺序控制电路中的循环。以下将参见图2说明循环执行处理。
假设在完成任意指令之后,开始目前的处理之前,执行循环,和进行下一个指令所需的每个值都存在于栈中。
步骤20中,实际循环执行之前,在计数寄存器单元10的计数寄存器中加载了要求的重复频率N。这里N是循环执行数。步骤22中,具有存贮于循环栈(loop?stack)16中的最终指令的地址和随后要执行的指令的地址被加到循环比较器19中。在步骤22中,图3所示的本发明的循环执行控制电路自动检测计数寄存器的值看其是否为0。步骤24中,执行指定的地址指令,步骤26中,检测循环的最终指令看其是否执行。如果在步骤26中确定没有执行最终指令,处理过程再回到步骤24,继续执行指令。如果步骤26中确定已经执行最终指令,则在步骤28中逐一减小计数寄存器的值。步骤29中,检测计数寄存器的值是否为0,当检测结果为0时,循环结束,反之,处理过程返回到步骤24,执行循环的第一指令。
图3所示为本发明的数字信号处理芯片中的循环执行控制电路,包括一个最低有效位状态检测单元70,一个条件时钟输出单元72和一个结束条件信号输出单元。按照最低有效位的状态和循环结束信号(LAST_LOOPSIGNAL)状态,和比较器加载信号LOAD_TO_CDMPARATOR?SIGNAL状态,当经锁存器30,从数据存贮器数据总线加载了循环执行数的计数寄存器32中的每一位状态检测结果表明,除最低有效位之外,每一位状态检测结果为0时,最低有效位状态检测单元70输出具有预定电平的有效信号。条件时钟输出单元72接收时钟信号、循环结束信号LAST_LOOP?SIGNAL和比较器加载信号LOAD_TO_COMAPRATOR?SIGNAL并只有当循环结束信号LAST_LOOP?SIGNAL或比较器加载信号LOAD_TO_COMPARATORSIGNAL有效时,输出时钟信号。结束条件信号输出单元60是一个“与”门,当条件时钟输出单元72的输出信号有效时,该单元60输出最低有效位状态检测单元70的输出信号。
只当满足图2中步骤29中的循环结束条件时,循环结束信号LAST_LOOP?SIGNAL变为一。只有在图2所示的步骤22中循环的最后指令地址和随后要执行的指令地址加到循环比较器上时,比较器加载信号LOAD_TO_COMPARATOR?SIGNAL才变成一。
最低有效位状态检测单元70包括多个PMOS栅极42,44,46和48,第一“与”门38,第二“与”门36,第一“或”门40和PMOS栅极50。PMOS栅分别接到除计数寄存器32的最低有效位之外的各位的输出端口,并相互串联连接。第一“与”门38按计数寄存器32中最低有效位的输出部分的输出和比较器加载信号LOAD?TO?COMPARATOR?SIGNAL进行“与”操作。第二“与”门36根据计数寄存器32中最低有效位的输出部分的输出和循环结束信号LAST?LOOP?SIGNAL进行“与”操作。第一“或”门40根据第一和第二“与”门38和36的输出进行“或”操作。PMOS栅50串联连接到PMOS栅48,并接收第一“或”门40的输出和输出具有预定电平的有效信号。在PMOS栅50与地之间NMOS栅52中的栅和源连接。这里,NMOS栅52总是处于截止态,但是当漏加上过电压时,允许过电压流入地。
而且,条件时钟输出单元72包括按时钟信号和比较器加载信号LOAD_TO_COMPARATOR?SIGNAL进行“与”操作的第三“与”门36,和按时钟信号和循环结束信号LAST_TOOP_SIGNAL进行“与”操作的第四“与”门54,和按第三和第四“与”门56和54的输出进行“或”操作的第二“或”门58。
具有这种结构的本发明的数字信号处理芯片中的循环执行控制电路当计数寄存器32的值为0时不执行循环,不产生错误,通常执行下面的指令。当计数寄存器32的值为N时(N是等于或大于1的整数),电路产生结束条件信号CONDITION_END(CE),用于帮助循环执行N次。
为说明图3所示电路的工作,假设每个状态是在图2的步骤20中。当产生时钟时,循环执行数经锁存器30从数据存贮器数据总线加到计数寄存器32中。本实施例中,假设计数寄存器32中的位数是5。首先,假设输入计数寄存器38的值是大于0的正数,即,N,如果计数寄存器32中除最低有效位之外,其余4位中的任何一位为1,则PMOS晶体管42,44,46和48中的一个变成截止态。因此,线1变成0。而且与任何其它信号无关,结束条件信号CONDITION_END变成0。因此,当计数寄存器32的值不是0或1时,结束条件信号CONDITION_END变成0。
当图2中计数寄存器32的值是1时,在步骤24中执行指令,之后,在步骤28中,其值从1变为0,循环结束信号LAST_LOOP?SIGNAL变为1。因此,第二“与”门36的输出是0。而且,由于比较器加载信号LOAD?TO?COMPARATON?SIGNAL是0,第一“或”门40的输出变为0。PMOS晶体管50导通,因此,线1变为1。当时钟状态为1时,第四“与”门54也输出1,因此,第二“或”门58输出1。最后,结束条件信号CONDITION_END(CE)变为1。此外,该结束条件信号CONDITION_END_(CE)输入到图1的条件逻辑18中,作为结束循环的指令。之后,执行下面的指令。
而且,在步骤20中,如果给计数寄存器32输入0,则在步骤22中,比较器加载信号LOAD_TO_COMPARATION?SIGNAL变成1,第一“与”门38输出0。第一“或”门40输出0。而且,PMOS晶体管50导通,因此,线1变为1。而且,当时钟状态为1时,第三“与”门56输出1,第二“或”门58输出1。最后,结束条件信号CONDITION_END(CE)变为1。而且,该结束条件信号CONDITION_END(CE)输入图1的条件逻辑18,作为结束循环指令。之后,执行下面的指令而不执行循环。
如上所述,本发明的数字信号处理芯片中的循环执行控制电路能防止循环执行数为0时会产生的错误,能在实现整个算法时减少执行时间,并防止程序存贮器的消耗。