基于指令宽度的高效仿真调度的制作方法

文档序号:6474249阅读:249来源:国知局
专利名称:基于指令宽度的高效仿真调度的制作方法
技术领域
本发明涉及数字信号处理器,尤其涉及控制从仿真指令寄存器接收的多个指令。
背景技术
数字信号处理与以数字形式表示的信号以及使用数字计算来变换或处理这种信号表示有关。在诸如无线通信、网络和多媒体之类的领域中,数字信号处理是许多当今高技术产品的核心技术。数字信号处理技术普遍的一个原因是已经开发了低成本的,功效大的数字信号处理器(DSP),它向工程师们提供了可靠的计算能力以便廉价而有效低实施这些产品。自从开发第一个数字信号处理器以来,数字信号处理器的结构和设计已经演变到即使是视频速率序列的实时处理它也可以执行的程度。
诸如数字视频、成象和音频之类多种多媒体应用经常使用数字信号处理器。数字信号处理器可以操纵数字信号来创建和打开这种多媒体文件。
MPEG-1(动画专家组)、MPEG-2、MPEG-4以及H.263是数字视频压缩标准和文件格式。这些标准可以通过存储从一个视频帧到另一个视频帧的大多数的变化来代替存储每一个完整的帧而达到数字视频信号的高压缩率。然后可以使用许多不同的技术进一步压缩视频信息。
在压缩期间可以使用数字信号处理器在视频信息上进行各种操作。这些操作可以包括活动搜索和空间内插算法。主要的意图是测量邻近帧中的块之间的畸变。这些操作的有一定的计算强度,而且可能需要高的数据通过量。
标准的MPEG系列正在演变成跟上多媒体应用和文件增加带宽的要求。每种新形式的标准提供更复杂的算法,甚至对在符合MPEG的视频处理设备中使用的数字信号处理器提出更高的处理要求。
视频处理设备制造者经常依靠用于MPEG和H.263标准下的视频编码的定制专用集成电路(ASIC)。然而,ASIC的应用与一般用途数字信号处理器相比,它们的设计复杂,生产成本高以及灵活性小。
附图简述阅读下列详细说明和参考附图,对本发明的这些和其它特性和优点将更为明了。


图1是根据本发明的一个实施例使用处理器的移动视频装置的方框图;图2是根据本发明的一个实施例的信号处理系统的方框图;图3是根据本发明的另一个实施例的信号处理系统的方框图;图4示出根据本发明的一个实施例的图1中的处理器的管道级;图5是根据本发明的一个实施例的仿真系统的方框图;以及图6示出根据本发明的一个实施例从仿真指令寄存器接收和执行多个指令的过程。
详细说明图1示出移动视频装置100,它包括根据本发明的一个实施例的处理器。移动视频装置100可能是显示视频图象的一个手持装置,所述视频图象是从天线105接收的编码视频信号产生的,或是从数字视频存储媒体120,例如数字视频盘(DVD),或存储卡接收的编码视频信号产生的。处理器110可以与高速缓冲存储器115进行通信,该高速缓冲存储器可以存储处理器操作用的指令和数据。clq 110可以是微处理器,数字信号处理器(DSP),微处理器控制的从属数字信号处理器,或具有微处理器、数字信号处理器混合结构的处理器。为了本申请的目的,这里以后把处理器110称为DSP 110。
DSP 110可以执行编码视频信号上的各种操作,例如包括,模拟-到-数字转换,解调,滤波,数据恢复以及解码。根据诸如MPEG-系列标准和H.263标准之类的各种数字视频压缩标准,DSP 110可以对压缩数字视频信号进行解码。然后可以把经解码视频信号输入到显示驱动器130以在显示器125上产生视频图象。
手持装置一般只具有有限的电源。还有,视频解码操作有一定的计算强度。相应地,有利的是用于这种装置的处理器是相当高速和低功率的器件。
DSP 110可以具有深度管道式的,负载/存储结构。通过使用管道式,可以使数字信号处理器的性能相对于非-管道式的数字信号处理器的性能增强。管道式DSP 110不是取出第一条指令,执行第一条指令,然后取出第二条指令,而是在执行第一条指令的同时取出第二条指令,从而提高了指令通过量。进一步,管道式数字信号处理器的时钟周期可以比非-管道式数字信号处理器的时钟周期短,其中,在同一个时钟周期中取出和执行指令。
在视频摄像器(video camcorder),电话会议,PC(个人计算机)视频卡以及高分辨率电视(HDTV)中可以使用这种DSP 110。此外,还可以结合使用数字信号处理的其它技术来使用DSP 110,诸如用于移动电话,语音识别和其它应用的话音处理。
现在转到图2,图中示出根据一个实施例的,包括DSP 110的信号处理系统200的方框图。外部源,例如天线105,可以把一个或多个模拟信号提供给信号调节器202。配置调节器202使之执行模拟信号的某些预处理功能。预处理功能的例子可以包括把数个模拟信号混合在一起,滤波,放大等。耦合模拟-到-数字转换器(ADC)204以接收来自信号调节器202的经预处理的模拟信号,并把预处理模拟信号变换成包括取样的数字信号,如上所述。通过根据信号调节器202接收的模拟信号的特性确定的取样速率来取得取样。耦合DSP 110使之接收ADC 204输出端的数字信号。DSP 110对所接收数字信号执行所要求的信号变换,产生一个或多个输出数字信号。耦合数字-到-模拟组合器(DAC)206以接收来自DSP 110的输出数字信号。然后把输出模拟信号传递到另外的信号调节器208。信号调节器208执行输出模拟信号的后-处理功能。后-处理功能的例子相似于上述预处理功能。要注意,信号调节器202和208,ADC 204,和DAC 206的各种实施例是众所周知的。可以把这些器件的任何合适的实施例耦合到具有DSP 110的信号处理系统200。
接着,转到图3,图中示出根据另一个实施例的信号处理系统300。在这个实施例中,数字接收器302可以接收一个或多个数字信号,并把所接收数字信号传递到DSP 110。如同图2所示的实施例,DSP 110对所接收信号执行所要求的信号转换,以产生一个或多个输出数字信号。耦合而使之接收输出数字信号的是一台数字信号发送器304。在一个示例应用中,信号处理系统是数字音频装置,其中,数字接收器302把表示存储在数字存储器件120中数据的数字信号传递到DSP 110。然后,DSP 110处理数字信号,并把所产生的输出数字信号传递到数字发送器304。然后,数字发送器304使输出数字信号的值发送到显示驱动器130以在显示器125上产生视频图象。
在图4中示出的管道包括八级,可以包括指令取出402-403,解码404,地址计算405,执行406-408,以及回写409等各级。在一个时钟周期中可以取出指令i,然后在接着的时钟周期中操作和执行,同时取出新的指令,例如,i+1和i+2。
管道可能引入另外的协调问题,并危害处理器的性能。程序流中的转移可能在管道中产生空时隙,或“泡泡”。造成发生条件转移,或产生异常或中断等的情况可以改变按顺序的指令流。在这种情况发生之后,可能在按顺序的程序流之外取出新指令,使管道中的其余指令没有关系。可以使用诸如数据转发、分支预测以及管道中有效位与指令地址相关联来处理这些复杂问题。
图5是方框图,示出根据本发明的一个实施例的仿真系统500。仿真系统500包括通过JTAG(联合测试作用组(Joint Test Action Group))系统504的内部-电路-仿真器(ICE)502到DSP 110的连接。内部-电路-仿真是一种系统,它包括嵌入目标处理器系统中的、称之为内部-电路-仿真器(ICE)502的外围装置,所述目标处理器系统是明确地注意到目标处理器的操作而且,可以产生实时跟踪信息用于在外部主仿真器中再建立处理器的执行。ICE 502可以控制处理器,并可以监测和更改处理器中寄存器的状态。ICE 502可以包括它自己的ICE总线,独立于在处理器集成电路上找到的正常数据、地址或控制总线,以致当ICE 502产生跟踪信息时不会干扰处理器的性能。
在诸如调试、硬件开发或软件开发之类的过程期间可以使用如IEEE1149.1规定的标准所定义的JTAG系统504进行仿真。可以把仿真期间要执行的指令从JTAG系统504扫描入仿真指令寄存器(EMUIR)505。从ICE 500到JTAG系统504对指令进行串行扫描。在从ICE 500装载JTAG系统504之后,JTAG系统504并行地装载EMIUR 505中的任何一个指令寄存器515或512。例如,第一条64-位指令可以从ICE 500装载到第一条指令寄存器515,而第二条64-位指令可以从ICE 500装载到第二条指令寄存器520。当然,每一条64-位指令可以包括单条指令或多条指令。例如,64-位指令可以包括一条32-位指令和2条并行的16-位指令。
可以在64个时钟周期中把第一条64-位指令串行地装载到JTAG系统504中,并在另一64个时钟周期中把第二条64-位指令串行地装载到JTAG系统504中。然而,在JTAG系统504装载有第一和第二条指令之后,JTAG系统504可以在单个时钟周期中把第一条64-位指令并行地装载到第一条指令寄存器515中。JTAG系统504还可以在单个时钟周期中把第二条64-位指令并行地装载到第二条指令寄存器520中。第一条指令和第二条指令仍保留在JTAG系统504中,所以如果需要的话,可以把它们再-装载到EMUIR505中。
在把指令装载到指令寄存器515、520中之后,JTAG系统可以进入运行-测试空转(RTI)状态,告诉指令载入管道。在进入RTI状态之后,第一条指令载入管道以回写,然后,第二条指令载入管道以回写。在第二条指令到达回写之后,JTAG系统504等待下一条指令。如果ICE 520重复第一条指令或第二条指令,则不需要把指令再装载到JTAG系统504中。因此,对于每条指令,JTAG系统可以在单个时钟周期中并行地把指令装载到指令寄存器515、520中。当重复第一条或第二条指令时,节约了把指令装载到JTAG系统504中需要的时钟周期。
运行-测试空转状态允许某些操作的发生取决于当前指令。进入运行-测试空转状态要消耗一个时钟周期,因此,使DSP 110的仿真变慢。通过使仿真指令寄存器505在单个周期中提供多条指令,在执行每条指令之后,DSP110可以不需要运行-测试空转状态。
根据本发明的一个实施例的仿真系统500还包括仿真控制逻辑522、状态机523、多路复用器525、寄存器527以及解码器530。仿真控制逻辑包括状态机523,并把控制信号提供给指令寄存器515、520、多路复用器525和寄存器527。来自仿真控制逻辑的控制信号控制管道中的指令流,如图4所示。在一个实施例中,仿真指令寄存器是一个128-位指令寄存器510,它包括多个较小的指令寄存器,诸如64-位的第一和第二条指令寄存器515、520。一般,指令寄存器515、520一次可以提供长度最长达64-位的一条指令。然而,根据本发明的一个实施例,可以同时从64-位指令寄存器515、520提供多条指令。如图5所示,可以在64-位指令寄存器中装载第一条指令515和第二条指令520。当然,第一条指令515和第二条指令520的长短必须不超过64-位。因此,第一条指令515可以是32-位指令,以及第二条指令520可以是32-位指令。第一条和第二条指令515、520还可以是16-位的或其它长短,只要指令经组合的长短符合64-位指令寄存器510。
仿真指令寄存器505把指令寄存器515、520的内容提供给多路复用器525。因为指令寄存器515、520可以包括多条指令,所以仿真控制逻辑522可以控制从仿真指令寄存器505接收到的指令流。仿真控制逻辑522包括下述逻辑,以把指令提供给解码器530。状态机523可以确定是否出现多条指令,以及指令是否有效。然后,状态机523可以通过寄存器把这些指令提供给解码器530。这样可以把指令提供给解码器530而同时降低对解码器530的破坏。
使用提供多条32-位或更短的指令的64-位指令寄存器来描述本发明。当然,提供(N/2)-位或更短的多条指令的任何长短的指令寄存器(N-位)都可以实现本发明。
在图6中示出通过仿真控制逻辑522处理指令的过程600。在开始块605处开始过程600。继续进行到块610,过程600等待运行-测试空转状态以开始指令流。继续进行到块615,过程确定是否检测到运行-测试空转状态。如果没有检测到运行-测试空转状态,则过程继续沿不(NO)分支进行到块610,以等待运行-测试空转状态。过程600保持在这个环路中直到检测到运行-测试空转状态。
回到块615,一旦检测到运行-测试空转状态,过程继续沿是(YES)分支进行到块620。在块620中,确定第一条指令的有效性。一条指令可以包括相应宽度位的组来定义有效性和指令的长短。在本发明的一个实施例中,宽度位是2-位信号。用2-位信号,有4种关于2-位信号的可能值。例如,宽度位00表示指令是有效的,宽度位01表示16-位指令,宽度位10表示32-位指令,而宽度位11表示64-位指令。
如果指令是有效的,则过程600继续沿是分支进行到块625。在块625中,第一条指令流入管道,直到回写供解码器530执行。接着第一条指令的执行,过程600继续进行到块630。回到块620,如果指令是无效的,则过程600继续沿不分支进行到块630。空操作(NOP)指令也可能导致把指令表明为无效的。如果检测到NOP指令,则过程600可以进行而无需在管道中处理NOP。因此,立刻可以处理第二条指令。
在块630中,DSP 110接收到第二条指令。因为第一条和第二条指令是同时存储在仿真指令寄存器中的,所以可以取得第二条指令而无需进入另一个运行-测试空转状态。DSP 110事先可能已经使用宽度位确定第一条指令的长短。根据第一条指令的长短,DSP 110可以确定第二条指令的起始在仿真指令寄存器中的位置。例如,如果第一条指令是32-位指令,则DSP 110可以找到第二条指令的第一位在仿真指令寄存器的第33位处。第二条指令的宽度位也可以提供信息表示要从仿真指令寄存器取得多少位。因此,DSP110可以从包括多条指令的仿真指令寄存器取得第二条指令。
继续进行到块630,确定第二条指令的有效性。也可以通过对宽度位的检查来确定第二条指令的有效性,如上所述。如果指令是有效的,则过程600继续沿是分支进行到块635。在块635中,第二条指令流入管道,直到回写供解码器530执行。接着第二条指令的执行,过程600继续进行到块640。回到块630,如果指令是无效的,则过程600继续沿不分支进行到块640。
在块640中,过程600确定DSP 110是否应退出仿真模式。可以由仿真控制逻辑522提供退出仿真模式的确定。如果指示要进一步仿真,则过程继续沿不分支进行,回到块610等待下一个运行-测试空转状态。回到块640,如果仿真控制逻辑522提供退出仿真模式的指令,则过程600继续沿是分支进行到结束块645。
许多变化和修改对于熟悉本技术领域的人员是显而易见的。相应地,可以在其它特定形式中实施本发明而不偏离本发明的精神或重要的特征。
权利要求
1.把指令从仿真指令寄存器提供给处理器的一种方法,其特征在于,它包括下列步骤同时从仿真指令寄存器接收多条指令;确定多条指令中的第一条指令的有效性;如果多条指令中的第一条指令是有效的,则把第一条指令提供给解码器;确定多条指令中的第二条指令的有效性;以及如果多条指令中的第二条指令是有效的,则把第二条指令提供给解码器。
2.如权利要求1所述的方法,其特征在于,进一步包括确定多条指令的长短。
3.如权利要求1所述的方法,其特征在于,进一步包括把多条指令存储在单个指令寄存器中。
4.如权利要求1所述的方法,其特征在于,进一步包括在确定第一条指令是无效的之后装载多条指令中的第二条指令。
5.如权利要求1所述的方法,其特征在于,进一步包括在一个运行—测试空转状态期间把多条指令提供给解码器。
6.如权利要求1所述的方法,其特征在于,进一步包括把多条指令并行地装载到仿真指令寄存器中。
7.如权利要求1所述的方法,其特征在于,进一步包括把指令提供给数字信号处理器。
8.在处理器中处理指令的一种方法,其特征在于,包括下列步骤把多条指令装载到单个指令寄存器中;接收运行—测试空转状态;同时把多条指令提供给处理器;以及处理多条指令。
9.如权利要求8所述的方法,其特征在于,进一步包括把多条指令装载到N-位仿真指令寄存器中。
10.如权利要求8所述的方法,其特征在于,进一步包括在处理前确定多条指令中的每一条指令的有效性。
11.如权利要求10所述的方法,其特征在于,进一步包括终止任何无效指令的处理并且装载多条指令中的下一条指令。
12.如权利要求8所述的方法,其特征在于,进一步包括如果装载空操作指令则装载多条指令中的下一条指令。
13.如权利要求8所述的方法,其特征在于,进一步包括把多条指令提供给数字信号处理器。
14.一种处理器,它包括指令寄存器,适用于存储多条指令;仿真控制逻辑,适用于在检测到单个运行—测试空转状态之后控制多条指令流向处理器管道;以及解码器,可以接收用于处理的多条指令。
15.如权利要求14所述的处理器,其特征在于,指令寄存器是仿真指令寄存器。
16,如权利要求14所述的处理器,其特征在于,控制逻辑确定多条指令的有效性以及丢弃任何无效的指令。
17.如权利要求14所述的处理器,其特征在于,在检测到空操作指令之后控制逻辑立刻装载下一条指令。
18.如权利要求14所述的处理器,其特征在于,处理器是数字信号处理器。
19.一种设备,包括驻留在机器可读存储媒体中的指令,用于在机器系统中处理多条指令,这些指令使机器能够将多条指令装载到单独的指令寄存器内;接收运行—测试空转状态把多条指令提供给处理器;以及处理多条指令。
20.如权利要求19所述的设备,其特征在于,指令寄存器是仿真指令寄存器。
21.如权利要求19所述的设备,其特征在于,在处理之前确定多条指令中的每一条指令的有效性。
全文摘要
在一个实施例中,状态机接收来自指令寄存器待通过数字信号处理器处理的多条指令。在接收到单个运行-测试空转状态之后,状态机一次装载多条指令中的每一条指令,并确定每条指令的有效性。如果指令是有效的,则状态机把指令传递到解码器。如果指令是无效的,或如果出现空操作指令,则状态机丢弃该指令,并立刻装载下一条指令。
文档编号G06F9/30GK1543603SQ01818338
公开日2004年11月3日 申请日期2001年10月31日 优先权日2000年10月31日
发明者C·R·罗斯, R·P·辛格, G·A·奥弗坎普, T·丁, C R 罗斯, 奥弗坎普, 辛格 申请人:英特尔公司, 模拟设备股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1