多媒体信号处理器内的多处理器操作装置的制作方法

文档序号:6412217阅读:163来源:国知局

专利名称::多媒体信号处理器内的多处理器操作装置的制作方法
技术领域
:本发明涉及数字信号处理器,特别涉及包含通用处理器和用于向量数据处理的向量处理器的双线程(dual-threaded)非对称并行处理系统。以下提到的现在正在申请的文件与本发明有关,本说明书将它们作为参考文献来引用1)尚未给予申请号的题为“Single-Instruction-Multiple-DataProcessinginaMultimediaSignalProcessor(多媒体信号处理器中的单指令多数据处理)”的美国专利申请;2)尚未给予申请号的题为“EfficientContextSavingandRestoringinMultiprocessors(多处理器中的高效现场保存与恢复)”的美国专利申请;3)尚未给予申请号的题为“SystemandMethodforHandlingSoftwareInterruptsWithArgumentPassing(用于处理具有变元传递的软件中断的系统和方法)”的美国专利申请;4)尚未给予申请号的题为“SystemandMethodforHandlingInterruptsandExceptionEventsinanAsymmetricMultiprocessorArchitecture(用于处理非对称多处理器架构中的中断与异常的系统和方法)”的美国专利申请;5)尚未给予申请号的题为“MethodandApparatusforProcessingVideoData(用于处理视频数据的方法和装置)”的美国专利申请;6)尚未给予申请号的题为“Single-Instruction-Multiple-DataProcessingUsingMultipleBanksofVectorRegisters(采用多个向量寄存器组的单指令多数据处理)”的美国专利申请;7)尚未给予申请号的题为“Single-Instruction-Multiple-DataProcessingWithCombinedScalar/VectorOperations(用标量/向量组合操作的单指令多数据处理)”的美国专利申请。现在有各种数字信号处理器(DSP)用于诸如视频信号、音频信号及通信数据的编码及解码之类的多媒体应用。其中,有一种DSP提供了解决MPEG视频解码或编码这一特定问题的硬件。这样提供的专用硬件DSP,尽管通常有很好的性能/价格比,但仅对特定问题有用,不能解决其他问题或适应标准的变化。可编程(programmable)DSP执行解决多媒体问题的程序,与提供的硬件DSP相比有更好的通用性,这是因为变更可编程DSP的软件就可变更所解决的问题。但是,该可编程DSP存在性能/价格比低的的问题。可编程DSP具有与通用处理器的结构类似的结构,处理能力稍低。这种低处理能力是最低限度降低费用的结果。因此,这样的DSP妨碍了DSP解决实时视频编码及解码这种更复杂的多媒体问题的能力,所以不能完全令人满意。可编程DSP的目的是以最少的费用提供解决多媒体问题的处理能力,因而作为增加处理能力的方法,最好纳入已知的DSP并行处理。并行处理的一种结构是“超长指令字(verylonginstructionword;VLIW)”DSP,其特征是具有大量的功能单元(functionalunits),其中大部分功能单元执行不同但是简单的任务。VLIWDSP的单一指令可以有128或更多字节且具有相互独立的部分。各部分可由并列的相互独立的功能单元来执行。VLIWDSP由于大量功能单元能并行工作,所以具有很高的计算能力。此外VLIWDSP的各个功能单元小而简单,因而造价很低。但是VLIWDSP不能有效应用于输入输出控制、与主计算机的通信、以及不使用VLIWDSP的功能单元并行执行的其他功能。此外,VLIW程序与通常的计算机程序不同,由于缺乏编程工具(programmingtool)及很了解VLIW软件结构的程序员,所以存在开发困难的问题。本发明即是为了解决上述现有问题而提出的,其目的在于提供集成的数字信号处理器。本发明的数字信号处理器,由通用处理器和能与通用处理器并行操作的向量处理器组合而成。所述数字信号处理器的两个处理器只执行最适合各自处理器的任务,因而能以低造价实现高性能。例如,通用处理器运行实时操作系统并管理整个系统,而向量处理器则使用称为“向量”的数据结构进行并行计算。向量是同一类型的数据元素的集合。在本发明的一实施例中,数字信号处理器包括高速缓冲存储器子系统、第一总线及第二总线。所述第一总线用于局部总线接口、DMA控制器、设备控制器及存储器控制器这些高速设备,第二总线用于系统定时器、UART、比特流处理器及中断控制器这些低速设备。高速缓冲存储器子系统综合了高速缓冲存储器功能和切换(switchboarding)或数据路由功能。切换功能同时操作处理器和总线之间的多个通信路径。此外,高速缓冲存储器子系统的高速缓冲存储器部分同时执行高速缓冲存储器的读取及写入。根据本发明的一个方面,多媒体处理器包括由各自独立的程序线程(thread)并行工作的通用处理器和向量处理器。所述通用处理器,类似于一般的通用处理器,执行处理标量数据的指令,因而适于执行输入输出及控制功能。在本发明的实施例中,所述通用处理器具有对在一个数据字中打包的几个字节长度的数据元素进行有限的向量处理的能力。例如,在通用处理器为32位处理器的情况下,可以同时处理4个一字节数据元素。但是,音频及视频数据的压缩及解压这种多媒体计算需要对象素矩阵和音频数据串进行大量的反复计算。为了实时进行多媒体操作,处理标量数据(例如每个操作数1个象素值或1个声音振幅)、或者小的向量的通用处理器必须以高的时钟频率工作。与此不同,向量处理器执行每个操作数包含多个数据元素的向量指令。因此,向量处理器以执行同一功能的通用处理器所需时钟频率的一部分,即可执行实时多媒体操作。因此,由于允许对多媒体应用所需的任务进行有效的分割,可编程通用处理器和向量处理器的组合能提供高的性能/价格比。在本发明的一个实施例中,通用处理器对为与主计算机系统通信的媒体电路板(卡)而构成的实时操作系统进行操作。所述实时操作系统与主计算机系统的原有处理器通信,提供卡上的或与卡连接的输入输出装置的服务,选择向量处理器所执行的任务。向量处理器是在通用处理器作为向量处理器的主控处理器工作的期间为执行要求大数据块处理的计算密集型任务而构成的。为了使多媒体处理器“与程序员友好”,各个处理器所用的程序线程采用通常的指令集来编写。由于可编程,所以允许多媒体处理器执行各种其他的多媒体任务。例如,仅改变应用程序或固件,多媒体处理器就能适应新的协议。所述指令集类似于通常的RISC(reducedinstructionsetcomputer,精简指令集计算机)指令集。根据本发明的另一方面,通用处理器和向量处理器共有可通过单一地址空间访问的多种片内(on-chip)及片外(off-chip)装置。为各个处理器提供独立的数据及指令高速缓冲存储器的高速缓冲存储器子系统在局部存储器与作为存储器映射(memorymap)装置的比特流处理器、UART(universalasynchronousreceiver-transmitter,通用异步收发信器)、直接存储器存取(DMA)控制器、局部总线接口及编码-解码器(CODEC)接口这些资源之间提供切换器类型的连接。高速缓冲存储器子系统能够使用面向事务的(transaction-oriented)协议,该协议提供在处理器和存储器映射装置之间进行数据存取的切换器。以下参照附图详细说明本发明的优选实施例,在所有附图中,相同的部分标有相同的标号,其中,图1是本发明一实施例的多媒体卡的结构图。图2是本发明一实施例的多媒体信号处理器的结构图。图3是本发明一实施例的包含多媒体信号处理器的系统的各处理器与软件或固件之间的关系图。图4是本发明一实施例的高速缓冲存储器子系统的结构图。图5是本发明一实施例的存储器映射图。图6是本发明一实施例的高速缓冲存储器子系统使用的数据管道的结构图。图7是本发明一实施例的高速缓冲存储器子系统的另一种数据管道的结构图。图8是本发明一实施例的高速缓冲存储器子系统使用的地址管道的结构图。图1示出本发明一实施例的多媒体卡100。多媒体卡100包括与印刷电路板、多媒体处理器110及主计算机系统的局部总线105连接的连接器。局部总线105可以是PCI总线、专有(proprietary)总线、或符合ISA或VESA总线协议之类的规定协议的总线。多媒体处理器110使用位于多媒体卡100上用于存储数据和程序指令的局部存储器120。局部存储器120也可用作视频信号编码及解码的帧缓冲器。局部存储器120可由512K×32位同步(synchronous)DRAM构成。局部存储器的部分空间可由多媒体处理器110的片内SRAM及ROM构成。实际上,只要提供足以存储多媒体卡100的数据及指令的片内存储器,就不必配备局部存储器120。除多媒体处理器110和局部存储器120外,多媒体卡100还包括视频模数转换器(ADC)132、视频数模转换器(DAC)134、音频ADC142、音频DAC144、通信用ADC146及通信用DAC148。各转换器(132、134、142、144、146、148)可分别由一个或更多的独立集成电路构成。此外,也可在单个集成电路上集成两个以上的转换器(132、134、142、144、146、148)。例如,AnalogDevices(模拟器件)公司的AD1843单片集成电路140可实现转换器(142、144、146、148)的功能。例如,可由三星电子公司的KS0122构成的视频ADC132与摄像机或外部视频信号源连接,将视频信号数字化为串行的象素值。多媒体卡100根据MPEG、JPEG或设置在由多媒体处理器110操作的固件内的H.324之类的视频编码标准,对所述象素值进行压缩编码。经编码的视频数据被通过局部总线传送到主计算机,或为了在连接到局部总线105上的Ether网卡之类的装置上或连接到通信用DAC148上的电话线上传送而再次被编码。视频DAC134将来自多媒体处理器110的一系列数字采样值转换为视频监视器或电视机所用的模拟视频信号。视频DAC134根据NTSC或PAL制式而定,可由例如三星电子公司的KS0119集成电路构成。多媒体处理器110可根据由主计算机、连接在局部总线105上的其他装置、连接在视频ADC上的摄像机、或连接在通信用ADC146上的电话线提供的数据,生成视频DAC134所用的一系列数字采样值。多媒体卡100可包括图形控制器150作为任选的构成部件,该图形控制器150与多媒体处理器110共用局部存储器120,并为主计算机的视频监视器提供视频信号。图形控制器150可由CirrusLogic、S3或TridentMicrosystems等公司的VGA图形控制器构成。多媒体处理器110在局部存储器120内生成并存储象素图(pixelmap),据此图形控制器150生成视频监视器所用的视频信号。音频ADC及音频DAC142、144用于模拟音频信号的输入输出。在本发明一实施例中,多媒体卡100模拟广泛普及的“声霸卡(SoundBlaster)之类的声卡的功能,进行波表合成(wavetablesynthesis)及FM合成之类的声音合成。为了仿真声卡,由主计算机执行的应用程序提供表示声音的数据,多媒体处理器110根据该数据生成声音振幅。音频DAC144将所述的声音振幅转换为扬声器或放大器所用的模拟音频信号。多媒体处理器110对由音频ADC142输入的音频信号进行类似的处理。通信用ADC146对来自电话线的模拟信号进行采样,将数字化的采样值送至多媒体处理器110。多媒体处理器110如何处理数字化的采样值,取决于固件完成的功能。例如,多媒体处理器110通过执行采样点的V.34解调、V.42bis纠错及解压的固件程序,可完成调制解调器功能。多媒体处理器110还可对主计算机提供的数据进行压缩,生成表示由通信用DAC148传送的正确调制的模拟信号的数字采样值。同样,如果提供适当的固件或软件,多媒体处理器110可利用所述ADC146及DAC148之类的硬件作为与电话线的接口来完成自动应答机、传真或可视电话功能。图2示出多媒体处理器110的一实施例的结构图。多媒体处理器110配有包含通用处理器210和向量处理器的处理核心(processingcore)200。这里,向量处理器是执行具有向量操作数、即包含同一类型的多个数据元素的指令的处理器。通用处理器210和向量处理器220执行各自独立的程序,它们也可以是标量或超标量(superscalar)处理器。作为本发明的实施例,通用处理器210可以使用工作在40MHz、符合标准ARM7指令集的32位RISC处理器。ARM7RISC处理器及ARM7指令集的结构,如AdvancedRISCMachines公司的ARM7DM产品说明书(DataSheet)所示。通用处理器210起到了对ARM7指令集进行扩展以包含与向量处理器220的接口有关的指令的作用。作为参考文献,在本说明书中所述的专利申请“SystemandMethodforHandlingSoftwareInterruptswithArgumentPassmg”中,对本发明实施例的ARM7指令集的扩展进行了说明。通用处理器210通过控制总线212与向量处理器220连接,实现ARM7指令集的扩展。此外,向量处理器220使用中断线222以请求通用处理器210上的中断。向量处理器220具有SIMD(single-instruction-multiple-data,单指令多数据)结构,既可处理标量,也可处理向量。在本发明的实施例中,向量处理器220工作在80MHz,由具有288位向量寄存器组(vectorregisterfile)的流水线化(pipelined)RISC中央处理器构成。向量寄存器组中的各个向量寄存器可最多包含32个数据元素。在表1中示出了向量内的数据元素的数据类型。数据类型数据长度说明int88位(字节)-128和127间的8位2的补数int99位(字节9)-256和255间的9位2的补数int1616位(半个字)-32,768和32,767间的16位2的补数int3232位(字)-2147483648和2147483647间的32位2的补数浮点数(float)32位(字)符合IEEE754单精度格式的32位浮点数</table>因此,向量寄存器可具有32个8位或9位整数数据元素、16个16位整数数据元素、或8个32位整数或浮点(floatmgpoint)元素。此外,所述实施例可在与复盖2个向量寄存器的576位向量操作数上工作。向量处理器220的指令集包括处理向量和标量的指令。作为本说明书的参考文献给出的专利说明书“Single-Instruction-Multiple-DataProcessinginaMultimediaSignalProcessor”中,对本发明实施例的指令集及执行该指令集的结构进行了说明。高速缓冲存储器子系统230由表示为2个块的SRAM块260和290、ROM270及高速缓冲存储器控制部280组成。高速缓冲存储器子系统230将指令高速缓冲存储器262与数据高速缓冲存储器264合并为SRAM块260供通用处理器210使用,将指令高速缓冲存储器292和数据高速缓冲存储器294合并供向量处理器220使用。包含通用处理器210和向量处理器220所用的数据及指令的片内ROM270,也可合并到高速缓冲存储器中。在本发明的实施例中,ROM270包括复位及初始化过程、自检诊断过程、中断及异常处理、声霸卡仿真子例程、V.34调制解调器信号处理子例程、一般的电话功能、二维及三维图形子例程序、以及MPEG-1、MPEG-2、H.261、H.263、G728alc、G.723之类的音频及视频标准的子例程序。图3示出在主计算机系统300内使用多媒体卡100时硬件和软件或固件之间的关系。主计算机系统300具有原有的系统处理器310,该原有处理器310执行存储在主存储器320内的程序。在本发明的实施例中,主计算机系统300是配有x86型微处理器的IBM兼容机,由主计算机系统300执行的程序包括在WindowsTM95或NT之类的操作系统下使用的应用程序330。应用程序330可通过设备驱动器342与多媒体卡100通信。设备驱动器342符合操作系统的设备驱动器API。由于不同实施例的多媒体卡100具有诸如另外的寄存器映射和中断级等不同的硬件功能,所以在不同的多媒体卡100中都配有所述设备驱动器。设备驱动器必须将特定多媒体卡100所需的控制信号适当地变换为操作系统的设备驱动器API所规定的控制信号。所述操作系统期望调制解调器驱动器、图形驱动器及音频驱动器之类的不同设备各有不同的设备驱动器。因此,如果一实施例的多媒体卡100为音频卡、调制解调器及图形卡的功能的组合,则操作系统需要3个不同的设备驱动器。多媒体处理器110内的通用处理器210执行控制与设备驱动器342通信的实时操作系统360。通用处理器210还完成一般的任务370。向量处理器220完成向量任务380。高速缓冲存储器子系统230(参照图2)将通用处理器210和向量处理器220连接到IOBUS240和FBUS250这两个系统总线上。IOBUS240以比FBUS250慢的频率工作。低速设备连接到IOBUS240上,高速设备连接到FBUS250上。高速设备和低速设备分离,防止了低速设备过度影响高速设备的工作。高速缓冲存储器子系统230还起到了IOBUS240、FBUS250、通用处理器210及向量处理器220之间通信的切换器的作用。在大多数实施例的高速缓冲存储器子系统230中,在总线和处理器间可以同时进行多个存取。例如,通用处理器210和IOBUS240通信时,同时向量处理器220可与FBUS250通信。在本发明的一个实施例中,切换器和高速缓冲存储器功能的组合是通过对FBUS250和IOBUS240采用直接映射技术实现的。具体说,通过在适当的地址进行标准存储器的读取及写入操作,FBUS250及IOBUS240上的设备可由通用处理器210和向量处理器220访问。图5示出本发明一实施例的存储器映射。存储器块510,即字节地址(byte-address)0到4M-1的地址空间,提供给ROM270。存储器块520,即字节地址4M到8M-1的地址空间,提供给SRAM块260。存储器块530,即字节地址8M到72M-1的地址空间,提供给局部存储器120。FBUS250上的设备被映射到由字节地址72M开始、延伸到字节地址77M的存储器块540。存储器块550为将来的扩展而保留。IOBUS240上的设备被映射到从字节地址125M开始,延伸到128M-1的存储器块560。存储器块570为将来的扩展而保留。存储器块580,即字节地址2G到4G-1的地址空间,提供给其他主计算机设备,通过局部总线接口255存取。这里,作为存储器地址的单位使用的M和G,分别表示1,048,576(即1024*1024)和1,073,741,824(即,1024*1024*1024)。FBUS250(参照图2)连接到存储器控制器258、DMA控制器257、局部总线接口255及设备接口252,其中设备接口252分别为图1所示的局部存储器120、局部总线105及转换器(132、134、142、144、146、148、150)提供各个接口。存储器控制器258控制对局部存储器120的读取及写入操作。在本发明的实施例中,存储器控制器258控制一组(bank)同步(synchronous)DRAM(2个1M×16SDRAM芯片),所述同步DRAM配置成使用24至26个地址位和32个数据位,具有以下特征1)以可编程刷新速率(programmablerefleshrate)执行的“CAS在RAS之前(CAS-before-RAS)”刷新协议;2)起动读-改-写(Read-Modify-Write)操作的部分写入;及3)内部的组交插(internalbankinterleave)。存储器控制器258还提供存储器120和FBUS250之间的1∶1频率匹配、手工的“两组预充电(bothbankprecharge)”、及为更好地使用FBUS250而排队的地址和数据。同步DRAM可以以80MHz频率高效操作,这点众所周知;也可以使用标准快页(standardfastpage)DARM及EDO(extendeddataout,扩充的数据输出)DRAM。具有与存储器控制器258类似功能的本发明实施例的DRAM控制器是本领域公知的。DMA控制器257控制主计算机的主存储器和多媒体处理器210的局部存储器间的直接存储器存取。这种DMA控制器为本领域所公知。在本发明的实施例中包含存储器数据传送器(mover)。该存储器数据传送器执行从一个存储器块到另一个存储器块的DMA。局部总线接口255通过局部总线105执行与主计算机通信所要求的协议。在本发明的实施例中,局部总线接口255提供对33MHz、32位的PCI总线的接口。这种PCI总线接口是公知的。设备接口252为与多媒体处理器110一起安装在印刷电路板上的转换器(132、134、142、144、146、148)之类的设备提供硬件接口。设备接口252可为多媒体110的特定应用而定制。特别是,设备接口252也可以采用只适应特定设备或IC的接口。设备接口252内的典型单元提供与标准的ADC、DAC或CODEC连接的接口。ADC、DAC及CODEC接口的设计为本领域所公知,就不再说明。在可利用的其他接口中,包含微通道(microchannel)总线之类的总线所用的接口及数字电话所用的ISDN接口,但并不局限于此。在多媒体处理器110的一实施例中,设备接口252也可以是可编程以实现希望的功能的ASIC。IOBUS240以比总线250的工作频率(80MHz)低的频率(40MHz)工作。在IOBUS240上连接有系统定时器242、UART243、比特流处理器248及中断控制器245。通过写入与系统定时器242对应的寄存器来选择计划的间隔,系统定时器242以此间隔对处理器210中断。在本发明的实施例中,系统定时器242为具有3个独立的16位计数器、6个可编程计数器模式的与标准intel8254兼容的间隔定时器(standardintel8254compatibleintervaltimer)。UART243是串行接口,可与需要个人计算机标准串行通信端口(com)的调制解调器及传真所使用的16450UART集成电路兼容。比特流处理器245是执行输入或输出比特流的特定功能的固定的硬件处理器。根据本发明的实施例,比特流处理器245完成MPEG编码或解码的最初或最终阶段。特别是,比特流处理器245完成可变长度(Huffman)编码及解码,和Z字形(zigzag)格式的视频数据的打包(packing)及解包(unpacking)。比特流处理器245在通用处理器210及向量处理器220的控制下与这两个处理器并行工作。处理器210、220通过控制寄存器与比特流处理器245连接。在作为本说明书的参考文献提到的美国专利申请“MethodsandApparatusforProcessingVideoData”中记述了比特流处理器245的一实施例。中断控制器248控制通用处理器210的中断并支持多个中断优先级。提供屏蔽寄存器以分别屏蔽各个中断优先级。在本发明的实施例中,中断控制器248是可编程的,它构成x86标准的个人计算机中都用的标准intel8259中断系统。最高优先级(0级)中断通常分配给系统定时器242。优先级1、2、3、4及7分别分配给虚拟存储帧缓冲器(virtualframebuffer)、DMA控制器257及设备接口252,比特流处理器245,局部总线接口255,及UART243。中断优先级4、5及6在本发明的实施例中没有分配。优先级1的虚拟存储帧缓冲器包含在本发明的实施例中,它模拟标准VGA帧缓冲器。图4是高速缓冲存储器子系统的结构图。SRAM块260划分为4个存储器组(memorybank),形成通用处理器210使用的指令高速缓冲存储器262和数据高速缓冲存储器264、向量处理器220使用的指令高速缓冲存储器292和数据高速缓冲存储器294。SRAM块260包含划分给每个存储器组的标签(tag)部分406。SRAM块260是具有读取端口440和写入端口430的双端口存储器电路,所以SRAM块260的同时读取及写入操作得到支持。高速缓冲存储器子系统230包含配有标签字段(tagfield)472的ROM高速缓冲存储器270。如上所述,ROM高速缓冲存储器270包含通用处理器210及向量处理器220频繁使用的指令及数据。虽然标签字段472不能修改,但各个地址可被标记为无效,这样数据或指令可以从使用的存储器中取出,而不是从ROM270中取出数据或指令。数据管道(datapipeline)410完成高速缓冲存储器子系统230的数据切换器功能。数据管道410可在IOBUS240、FBUS250、通用处理器210、向量处理器220及SRAM块260之间同时生成多个数据通信路径。与此相同,地址管道420完成对地址的切换器功能。在图4的实施例中,IOBUS240及FBUS250对地址及数据信号采用时分复用。高速缓冲存储器控制器280为数据管道410和地址管道420提供控制线,以便合适地构成通信通道。在高速缓冲存储器子系统230的一实施例中,为了支持所有的读取及写入操作,采用基于事务的协议(transaction-basedprotocol)。连接在高速缓冲存储器子系统230上的任何单元,例如通用处理器210、向量处理器220或IOBUS240及FBUS250上的各种设备,都可以向高速缓冲存储器子系统230提出请求(request)。这种请求由设备标识码(identificationcode;ID)和请求的存储器位置的地址形成。各个单元具有各自的设备ID,高速缓冲存储器子系统230根据提出请求单元的设备ID可给予请求一优先级。在请求的地址处的数据可用的情况下,高速缓冲存储器子系统以设备ID、事务ID(transactionidentificationcode)、地址及所述请求的数据作出响应。如果请求的地址不包含在SRAM块260或ROM块270中,则高速缓冲存储器子系统230在检索存储器地址的数据时,在几个时钟周期内不能响应特定请求。但是,在检索第一个请求的数据时,高速缓冲存储器子系统230可处理来自具有其他设备ID的其他单元的第二个请求。这样,正在进行的请求不会阻塞其他单元的后续请求。此外,高速缓冲存储器子系统230还可在单一周期内同时处理读取请求或写入请求。如上所述,SRAM块260分为4个存储器组。由于SRAM块260具有读取端口440和写入端口430两个端口,所以在一个周期内可接收一个读取请求和一个写入请求。为了支持同时发生的读取和写入请求,SRAM块260的TAG部406必须具有2个读取端口。因此,为了判断命中(hit)或未命中(miss),读取端口440使用的地址和写入端口430使用的地址可以与内部高速缓冲存储器标签(tag)同时比较。标签部分406具有另外的写入端口,因而当写入端口430进行写入请求时,适当的标签字段会改变。取决于整个系统的限制程度,高速缓冲存储器子系统230可以按照回写(write-back)或透写(write-through)的高速缓冲存储办法来使用。此外,在本发明的实施例中,为了进一步提高速度,高速缓冲存储行(line)的长度可为数据宽度的2倍。在本发明一实施例中,为了“簿记(book-keeping)”的目的,每个高速缓冲存储行包含2个向量,所以必须分配2个有效位(validbit)和2个否定位(dirtybit)。SRAM块260在外加全局清除信号(globalclearsignal)后,必须全局地消去所有的有效位。在本发明的另一实施例中,SRAM块260内的4个存储器组支持各自的清除信号。图6是数据管道410一实施例的结构图。高速缓冲存储器子系统230起着高速缓冲存储器系统及IOBUS240、FBUS250、通用处理器210及向量处理器220的切换器的作用,所以所述总线和处理器必须能通过高速缓冲存储器进行通信或在高速缓冲存储器被其他设备使用的情况下直接进行通信。所述处理器通常比总线上的设备快,所以在写入时通常利用高速缓冲存储器,允许高速缓冲存储器回写系统将数据放置到合适的总线设备上。与此相同,处理器通常不是向设备直接请求信息,而是从高速缓冲存储器请求信息。如果高速缓冲存储器不含请求的数据,则处理器依靠高速缓冲存储器子系统将请求的数据读出和送至高速缓冲存储器,然后把数据提供给处理器。但是在高速缓冲存储器处于忙碌(busy)状态时,处理器可以直接访问总线。数据从通用处理器210通过IOMUX630传送到IOBUS240。来自IOBUS240的数据通过GP读出MUX620传送到通用处理器210。数据通过高速缓冲存储器读出MUX650及GP读出MUX620,从SRAM块260或ROM块207传送到通用处理器210。数据从通用处理器210通过高速缓冲存储器写入MUX610传送到SRAM块260。高速缓冲存储器读出MUX650、高速缓冲存储器写入MUX610、IOMUX630及GP读出MUX620可以是普通的多路转换器,因为受定时限制,它们也可以按需要包含内部锁存器或寄存器。多路转换器的选择控制线(未图示)接受高速缓冲存储器控制部280(参照图4)的命令。数据通过高速缓冲存储器写入MUX610和FBUSMUX640从通用处理器210传送到FBUS250。数据通过缓冲器660、高速缓冲存储器读出MUX650及GP读出MUX620从FBUS250传送到通用处理器210。完成这种功能的缓冲器660可以是普通的缓冲器、锁存器或寄存器。通用处理器210可通过控制线212(参照图2)控制向量处理器220。通用处理器210和向量处理器220间的直接数据传送未必需要,但因为所述两处理器共有同一存储器映射,所以可以通过SRAM块260或任何其他的设备来传送数据。来自ROM270及SRAM块260的数据通过高速缓冲存储器读出MUX650和IOMUX630传送到IOBUS240,来自IOBUS240的数据通过高速缓冲存储器写入MUX610传送到SRAM块260。来自IOBUS240的数据通过高速缓冲存储器写入MUX610及FBUSMUX640传送到FBUS250,来自FBUS250的数据通过缓冲器660、高速缓冲存储器读出MUX650及IOMUX630传送到IOBUS240。来自向量处理器220的数据通过高速缓冲存储器写入MUX610及IOMUX630传送到IOBUS240,来自IOBUS204的数据通过高速缓冲存储器读出MUX650传送到向量处理器220。在本发明的实施例中,为了使数据管道410的设计简单,省去了从向量处理器220到IOBUS的数据的直接管道。由于向量处理器220的带宽远大于IOBUS240的带宽,因而考虑到向量处理器220的处理时间,从向量处理器220到IOBUS240的直接通信路径是低效的。来自SRAM块260和ROM270的数据经高速缓冲存储器读出MUX650及FBUSMUX640传送到FBUS250,来自FBUS250的数据经缓冲器660及高速缓冲存储器写入MUX610传送到SRAM块260。来自FBUS250的数据通过缓冲器660及高速缓冲存储器读出MUX650直接传送到向量处理器220。数据可从向量处理器220通过高速缓冲存储器写入MUX610及FBUSMUX640直接传送到FBUS250。来自向量处理器220的数据通过高速缓冲存储器写入MUX610传送到SRAM块260,来自SRAM块260及ROM270的数据通过高速缓冲存储器读出MUX650传送到向量处理器220。图7详细示出数据管道410的第二实施例的构成。图7实施例的功能与图6实施例的功能类似,因而只对两者的不同点进行说明。在图7中,高速缓冲存储器读取MUX650可被高速缓冲存储器读取MUX750及MUX锁存器751代替。缓冲器660可被读取锁存器760代替,FBUSMUX640可被FBUSMUX740、回写(WB)数据锁存器741、存储器写锁存器742及存储器写锁存器743代替。图7实施例中的锁存器用于连接数据管道。高速缓冲存储器写入MUX610可被高速缓冲存储器写入MUX710、写入数据锁存器712、对准器(aligner)713及IO写入锁存器711代替,IOMUX630可被IO读取锁存器731及IO读取锁存器732代替。GP读取MUX620可被IO写入锁存器721及微高速缓冲存储器722代替。微高速缓冲存储器722将主高速缓冲存储器(SRAM块270及ROM260)连接到通用处理器210。微高速缓冲存储器722分为微指令高速缓冲存储器和微数据高速缓冲存储器,每个都包含标签部822(在图8中示出)、标签比较器及有效位。微高速缓冲存储器722作为预取(pre-fetch)缓冲器工作。通用处理器210的请求地址首先与微高速缓冲存储器722的标签部822进行比较。在发生未命中(miss)高速缓冲存储器(即与微高速缓冲存储器标签822不匹配)时,请求的地址和其他控制信息被送到主高速缓冲存储器。为了使微高速缓冲存储器722的结构简单化,与微高速缓冲存储器722内的标签不匹配的由通用处理器210写入的数据使微高速缓冲存储器地址无效,这样写入的数据被送到主高速缓冲存储器。这种高速缓冲存储器的统一性(coherence)即使没有微高速缓冲存储器722上的复杂的回写或透写设计也可得以维持。图8是地址管道420的一实施例。FBUS接口由4个进入地址队列(entryaddressqueue)及回写锁存器构成。FBUS接口850同时支持从指令高速缓冲存储器262正在进行的读取、从指令高速缓冲存储器292正在进行的读取、从数据高速缓冲存储器294来的写入请求及从数据高速缓冲存储器294来的回写请求。读取操作请求所用的地址被送到读取地址MUX820,写入操作请求所用的地址被送到写入地址MUX810。高速缓冲存储器控制部280(参照图2)根据请求的设备ID在通用处理器210、向量处理器220、IOBUS240及FBUS250的请求之间进行仲裁(arbitration)。高速缓冲存储器控制部280配置数据管道410及数据管道420的各种多路转换器并处理请求。高速缓冲存储器控制部的仲裁方案可根据各设备的重要性评价来决定。通用处理器210优先级最高。如上所述,高速缓冲存储器子系统230可同时完成读取及写入操作。因此,需要别的比较器用于读取及写入请求。比较器811将来自写入地址MUX810的写入地址与通过写入标签端口406-1接收的地址进行比较,判定当前请求的写入地址是否在高速缓冲存储器内。如果地址在高速缓冲存储器内,则高速缓冲存储器在匹配的高速缓冲存储器位置上更新数据。如果地址不在高速缓冲存储器内,则把地址和数据在未被使用的高速缓冲存储器位置或最近最少存取的高速缓冲存储器位置上写入高速缓冲存储器。结果,数据通过回写或透写高速缓冲存储器技术被适当地直接送到映射的设备。比较器821将来自读取地址MUX820的读取请求的读取地址和通过读取标签端口406-2接收的地址进行比较。如果标签与读取地址匹配,则将与标签对应的数据利用数据管道410送到进行请求的设备。如上所述,在使用事务协议的情况下,数据随设备ID、事务ID及请求的地址一起返回。如果没有标签和读取地址匹配,则高速缓冲存储器子系统必须从适当的由存储器直接映射的设备中检索所请求的数据。检索到请求的数据后,就将请求的数据、设备ID、事务ID及地址送到请求的设备。在检索第一个请求的数据期间,高速缓冲存储器子系统230可为第二个读取请求服务,因而需要高速缓冲存储器的第二个设备不受第一个设备的妨碍。本发明并不局限于上述的实施例。在不脱离本发明技术思想的范围内,本发明所属
技术领域
的普通技术人员可以用不同方法构成数据管道、切换器、地址管道、高速缓冲存储器子系统、多路转换器、锁存器、总线、处理器,利用这些可替换的特征生成数字信号处理器。权利要求1.一种集成的数字信号处理器,其特征在于包含通用处理器和能与所述通用处理器并行工作的向量处理器。2.如权利要求1所述的集成的数字信号处理器,其特征在于所述通用处理器包括一组标量寄存器、指令译码单元、和根据由所述指令译码单元译码的指令对多个标量值进行处理的处理核心。3.如权利要求2所述的集成的数字信号处理器,其特征在于所述向量处理器包括一组向量寄存器、第二指令译码单元、和根据由所述第二指令译码单元译码的指令对多个向量值进行处理的第二处理核心。4.如权利要求1所述的集成的数字信号处理器,其特征在于还包含与所述通用处理器及所述向量处理器连接、并配有高速缓冲存储器的高速缓冲存储器子系统。5.如权利要求4所述的集成的数字信号处理器,其特征在于所述高速缓冲存储器子系统包含高速缓冲存储器读取端口及高速缓冲器写入端口;还在于所述高速缓冲存储器子系统支持对所述高速缓冲存储器读取端口及所述高速缓冲存储器写入端口的同时访问。6.如权利要求4所述的集成的数字信号处理器,其特征在于所述高速缓冲存储器子系统还包含连接到所述通用处理器及所述向量处理器的数据管道;和连接到所述通用处理器及所述向量处理器的地址管道;还在于所述高速缓冲存储器包含连接到所述数据管道及所述地址管道的SRAM高速缓冲存储器;和连接到所述数据管道及所述地址管道的ROM高速缓冲存储器。7.如权利要求4所述的集成的数字信号处理器,其特征在于还包括连接到所述高速缓冲存储器子系统的第一总线;和连接到高速缓冲存储器子系统的第二总线。8.如权利要求7所述的集成的数字信号处理器,其特征在于所述第一总线具有比所述第二总线的第二总线带宽更大的第一总线带宽。9.如权利要求8所述的集成的数字信号处理器,其特征在于还包括连接到所述第二总线的比特流处理器;和连接到所述第一总线的局部总线接口。10.如权利要求9所述的集成的数字信号处理器,其特征在于所述局部总线接口连接到计算机系统的原有处理器的局部总线。11.如权利要求9所述的集成的数字信号处理器,其特征在于所述高速缓冲存储器子系统可配置成提供所述向量处理器、所述通用处理器、所述第一总线及所述第二总线之间的多个通信路径。12.如权利要求7所述的集成的数字信号处理器,其特征在于所述高速缓冲存储器子系统可通过第一高速缓冲存储器请求来访问。13.如权利要求12所述的集成的数字信号处理器,其特征在于在所述第一高速缓冲存储器需要多个周期才能结束的情况下,所述高速缓冲存储器子系统在结束所述第一高速缓冲存储器请求之前能够接收第二高速缓冲存储器请求。全文摘要为了实现高性能/价格比,一种集成的数字信号处理器采用了包含通用处理器和向量处理器的双线程非对称并行处理结构。所述集成的数字信号处理器还包括高速缓冲存储器子系统、第一总线及第二总线。该高速缓冲存储器子系统为所述处理器和总线提供高速缓冲存储管道和数据管道。可以为所述处理器和总线同时使用高速缓冲存储器子系统中的多个通信路径。此外,高速缓冲存储器子系统还支持对高速缓冲存储器同时的读取及写入操作。文档编号G06F15/80GK1175037SQ97115400公开日1998年3月4日申请日期1997年8月7日优先权日1996年8月19日发明者利·T·恩格延申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1