使用带有软高速缓存的芯片上系统的系统与方法

文档序号:6355699阅读:236来源:国知局
专利名称:使用带有软高速缓存的芯片上系统的系统与方法
技术领域
本发明的领域本发明一般涉及集成电路,并特别涉及带有软高速缓存的芯片上系统,及使用这种系统的方法。
本发明的背景随着新技术生产出带有高级功能性可购买的装置,手持式个人电子器具日益普及。一种这样的器具是便携式数字音频播放器,装置播放器下载数字音频数据,在可读写存储器中存储这些数据,并按用户要求把这些数据转换为音频。数字数据是以包括MPEG Layer 3,ACC,和MS Audio协议几种形式之一,从网络下载的或从固定介质诸如小型盘检索的。由适当固件支持的音频解码器,从存储器检索编码的数据,施加对应的解码算法并把解码的数据转换为模拟形式供耳机或其它扬声器系统。
在手持数据音乐播放器的设计和构成中,芯片上系统的使用允许所有必须的功能包含在小型的相对廉价的单元中。然而,数字音乐播放器的主要功能集成到单个芯片器件并不是容易的工作。这种器件不仅必须包含能够有效地进行数字到音频转换的处理能力,而且还必须能够与各种数字编码的数据源接口,支持不同的用户I/O选项,诸如LCD显示器和耳机,并与产生高质量音频所需的足够大的芯片上和芯片外存储器空间存储(编程的代码和数据)结合操作。
本发明的概述根据本发明的概念,顾客了一种高速缓存系统,该系统比较虚拟地址的标志位与到可编程高速缓存存储器空间中对应的高速缓存线的索引。高速缓存线的高速缓存线规格也是可编程的。当虚拟地址的标志位匹配软高速缓存项之一的标志字段时,选择来自该项的索引用于产生物理地址。使用所选的索引,作为对存储器地址中对应的可编程软高速缓存空间从虚拟地址偏移块地址位,产生物理地址。
实施本发明的原理的系统和软件优势地允许,在带有有限或没有硬件高速缓存支持的系统中进行软件高速缓存。一个例子是所公开的采用ARM7tdmi CPU核的芯片上系统,该系统既没有硬件高速缓存也没有存储器管理单元。此外,在高速缓存未中时以软件进行高速缓存线替换,因而工作在不同协议下的存储器之间的接口提高了效率。
为了完全理解本发明及其优点,现在结合附图参见以下的说明,其中

图1是采用本发明原理的芯片上系统的一系统的高级功能框图;图2是表示图1中所示系统的总线结构的功能框图;图3是图1的系统TIC接口的功能框图;图4是图1系统的LCD接口/显示器控制器的功能框图;图5是图1系统的DMA引擎功能框图;图6是图1的系统的外部SRAM/闪存控制器的功能框图;图7是图1的系统的中断控制器的功能框图;图8是图1的系统的电池检验器/音量监视器电路的功能框图;图9是图1的系统的时钟产生电路的功能框图;图10是图1的系统的USB端口的功能框图;图11是一示例性DSP调试块的示意图;图12是图1的系统的数字音频输入/输出端口的功能框图;图13是一般描述适用于图1的系统的软高速缓存系统的一示意图;以及图14是表示图13的软高速缓存系统操作的流程图。
本发明的详细说明通过参照附图的图1-14中描绘的所示的实施例,能够最好地理解本发明的原理和及它们的优点,其中相同的标号指示相同的部件。
图1是采用本发明原理的芯片上系统的一系统100的高级功能框图。相同100基于一微处理器内核,一数字信号处理器,一组外围设备,及相关的总线,其每一个将在以下进一步详细讨论。在系统100可能的应用中,有多标准的便携式音频装置,以诸如aMP3,AAC,及MS-Audio格式处理数字音频数据。
在该优选实施例中,系统100包括一ARM7TDMI微处理器核101,可从ARM Ltd.Cambridge,United Kingdom获得。微处理器101适用于各种功能,包括与外围设备接口,压缩和解压缩数据,及作为系统主机确定芯片的整个功能和状态。
数字信号处理器(DSP)102是计算密集的引擎,它取得从微处理器101分发的数据并然后解码,并通过外围端口控制这些数据的回放。
系统总线体系结构基于ARM Advanced Microprocessor BusArchitecture(AMBA)总线系统。对于AMBA总线体系结构的具体要求根据ARM Ltd.AMBA规范。主或高速总线(AHB)总线103连接到高带宽块,它们需要到存储器更频繁的访问。微处理器101及其局部存储器(RAM/ROM)137从主总线103通过局部AHB总线104,及桥接局部AHB总线104与主AHB总线103的接口105操作。当微处理器101运行一个程序且另一总线主机例如DMA引擎通过主AHB总线103传输数据时,这一结构使总线冲突最小化。
在离开主AHB总线103直接操作的其它装置中,有4通道DMA引擎106,及快闪/SRAM接口107,包括一外部存储器控制器,它把最高512Mbyte外部存储器映射到微处理器存储器空间,作为芯片上存储器的延伸,测试接口控制器(TIC)108,仲裁器109和LCD接口110。测试接口控制器(TIC)108能够从微处理器101接管总线控制并模拟总线周期,以便激励连接到AHB/APB总线的块。仲裁器109仲裁对主总线103的总线请求。LCD接口110支持到各LCD面板的连接(由于显示器可能需要大的帧缓冲器,显示器控制器110从高速总线操作)。
从属于主总线103的AHB-DSP接口111,允许微处理器101往来于DSP存储器移动数据块。
系统100还采用链接到系统低带宽外围设备的AMBA AdvancedPeripheral Bus(APB)112。APB 112从主总线103通过也从属于主总线103的AHB/APB桥113操作。在所示的实施例中,所有与系统外部装置接口的外围设备从APB总线112操作。
从APB总线112操作的外围设备包括USB从属接口114,其支持系统100与个人计算机(PC)或类似装置之间的通信。当系统100用于便携式数字音乐器具时,这一接口使得能够从PC向便携式音频系统快速下载文件。UARTa115是一串行端口,是完全16550兼容的并支持各种波特率。还提供了对相关PC老式的通信通道。
电池/音量检验器116是一芯片上模拟到数字转换器(ADC),其取得两种模拟输入并提供有8位精度高达100Hz的采样率的数字信号,供电池电平监视和音量开关检验。
SPI端口117也从APB总线操作,用于各种串行存储介质,诸如多媒体卡(MMC)。主模式兼容12C端口118提供到一些装置的范围,诸如EEPROM,DAC/Codecs和某些显示器的另一共用串行接口。
安全/复位端口119结合ROM中的安全代码操作,以确定正确的芯片初始化过程及引导顺序。一般来说,这一块使得一定的系统块对外部用户是不可见的,这是通过安全代码使然。
32KHz芯片上振荡器120与直接连接到芯片外32.768KHz晶体配合操作/并向芯片上PLLs 121a及121b提供基准时钟。PLLs121a,b使用一组用户可编程分频器提供各块所需的不同的时钟。此外,内置的自校准电路允许偏流的最优化,以便克服工作环境的变化。时钟控制是通过作为用于所有芯片上时钟源的主“阀门”的块122实现的。该控制能够配置为向每一时钟域提供全速或全速的部分,以及如果一定的块在特定的应用中没有使用,则断开(gate off)时钟以节省电能。
三个自由振荡定时器123a,c以APB总线112为动力操作支持微处理器101。RTC块124对系统提供实时时钟信息。
存储器重新映射125a块a不可3个不同的存储器映射方案,用于不同的芯片上和芯片外存储器配置。
中断控制器126收集所有指令源,并产生对微处理器101和/或DSP 102的请求。
DSP 102与DSP外围总线127配合操作。处理器之间的通信(IPC)块128通过硬件,用于微处理器101与DSP 102之间通过DSP外围总线127与APB总线112的同步化和消息交换。
也是以APB总线112及DSP外围总线127两者为动力的12S输入/输出块129,支持12S模式或突发模式的2-通道的输入及aa4-通道的输出模式。例如能够使用到外部ADC/DAC或传送-信号分解器的连接。
脉宽调制器(PWM)130提供一需要最小无源元件的模拟音频输出,并共享从12S输出块输出的四个通道的两个。
DSP定时器/STC块131向DSP子系统提供定时器及系统定时时钟,用于同步化DSP例行程序。
Gface132通过从属AHB/DSP接口111使DSP 102与主总线102接口,并与DSP存储器接口。在所示的实施例中,DSP 102与专用芯片上程序存储器133及两个块数据(数据0和数据1)存储器134和135相关。全局RAM 136用作为微处理器101与DSP 102之间的通信缓冲器。所有DSP存储器133-135及全局RAMa136被映射到微处理器地址空间,使得微处理器101能够初始化这些存储器,并向DSP 102传送数据。全局RAMa136还被映射到DSP程序/数据0/数据1地址空间,供DSP访问。
系统100优选的总线结构更详细地示于图2。这里,局部AHB仲裁器(块201)控制微处理器101主机与局部AHBSync & Handshake(AHBIF)主机202主机的仲裁,当授权局部AHB总线104的控制时,AHBIF主机202被给予最高优先权,且微处理器101被给予最低优先权。如果没有其它总线主机请求访问局部AHB总线104,则微处理器101被授权默认访问总线。
AHBIF主机202对来自局部总线104与全局总线103的事项进行同步化和握手,且反之也然。
如果局部AHB总线104(一般由块203表示)上给定的主机向全局AHB总线103上的从设备发起事务,则发生以下操作(1)发起主机对局部总线104进行仲裁并一旦它收到控制,即传送有效事项数据及控制信号;(2)AHBIF 202作为对局部AHB仲裁器201的从设备,俘获来自局部总线104的有效事项数据及控制信号,并对全局AHB仲裁器(块109)产生总线请求信号。还设置标志指示进入等待由局部AHB主机完成事项的状态;(3)AHBIF主机201对全局AHB仲裁器的主机,在这种情形下,仲裁全局总线103。在全局总线103保证控制之后,AHBIF主机在全局总线103上传送俘获的事务数据及控制信号;以及(4)全局总线103上的目标全局从设备204对事项数据及控制信号解码,并通过设置一标志指示事项的完成。AHBIF主机202检测该标志,并转而设置一标志向局部AHB主机指示事项的完成。
如果来自全局AHB总线103的主机操作(一般表示为块205)向局部AHB总线104上的从设备发起事项(一般表示为块206),则进行以下操作(1)给定主机对全局总线103进行仲裁,一旦保证总线的控制,即传送有效事项数据及控制信号;(2)AHBIF 202作为对全局AHB仲裁器109的从设备,俘获来自全局总线103的有效事项数据及控制信号,并对局部AHB仲裁器201产生总线请求信号。AHBIF主机202还设置标志指示进入等待由全局AHB主机205完成事项的状态;(3)AHBIF 202作为对局部AHB仲裁器的主机,仲裁局部总线104。在局部总线103保证控制之后,它在局部总线104上传送俘获的事务数据及控制;以及(4)局部总线104上的目标从设备206对事项数据及控制信号解码,并通过设置一标志指示事项的完成。AHBIF主机202对此响应而设置一标志,向给定全局AHB主机205指示事项的完成。
如果两个主机其任一个是AHBIF主机202,分别对局部总线104和全局总线103有控制,并试图访问AHBIF主机202相对侧上从设备,则可能引起死锁。通过以重试响应强迫完成由局部AHB主机发起的事项,而破解死锁。
AHB到DSP从设备的接口111允许微处理器101,向DSP 102不同的局部存储器133-135及全局存储器136,发送读和写请求。此外,接口111使微处理器和DSP时钟域同步化,并进行必要的握手。具体来说,接口111响应来自当前授权的局部或全局AHB主机203/205的事项请求。然后事项请求传送到GFACE 132,且各存储器选择信号,(x_sel,y_sel,p_sel,及g_sel)从对应的地址被解码。
AHB到DSP从设备接口111在两个不同的时钟域之间操作。DSP时钟域的频率最好是微处理器时钟域频率的整数倍,且两个域的边缘对于每一微处理器时钟域上升边对齐。因而必须防止微处理器在其DSP域基于较快的时钟的周期期间进行多存储器访问。最好从时钟产生器提取一信号,在下一个微处理器时钟域上升边之前向接口111指示DSP周期。由此,如果没有DSP冲突,微处理器的存储器访问可被限制在仅在第一周期,或如果发生DSP冲突,限制在第二周期。所有其它周期锁定到DSP。
GFACE 132使微处理器101与DSP 102与全局和DSP专用存储器空间两者接口。具体来说,GFACE 132管理所有到这些存储器空间的访问,当它们出现时解决来自DSP和微处理器的冲突访问,并使来自DSP到全局存储器的并行访问串行化。一般来说,当微处理器和DSP两者定位同一存储器模块时,冲突是通过延长DSP的低时钟相位而被解决的。往来讨论的目的,存储器空间为x存储器,y存储器,程序(p)存储器,及全局(g)存储器。
当DSP 102和微处理器101试图同时访问同一存储器块时,GFACE 132进行以下操作(1)在第一系统时钟周期,服务于DSP请求。对于写,写信息被写入存储器。在读的情形下,GFACE 132从存储器检索数据并将它们存储在内部寄存器;(2)DSP时钟的高相位延长到其3倍正常宽度。在这一时间期间,在第二系统时钟周期中,GFACE 132服务于微处理器101请求;以及(3)在服务微处理器101请求之后,GFACE 132通过访问读寄存器中的信息完成DSP读,并使DSP时钟返回其通常额定周期。
在DSP 102与GFACE 132之间提供一信号,该信号允许DSP请求存储器定时中的一个周期延长。当DSP维持这一信号并假设在该周期没有冲突时,GFACE 132延长DSP和RAM时钟两者。(如果DSP与微处理器之间有冲突,则无需延长,因为DSP将自动延迟一个周期)。
在所示的实施例中,DSP 102与在图1中150处一般所示的三个存储器总线X,Y和P配合操作。虽然全局存储器136只有一个端口。因而,在一个以上这些总线试图同时访问全局存储器的情形下,GFACE 132将使这些请求串行化以避免冲突。在其对全局存储器进行必要数目的访问使,GFACE 132还延长DSP时钟的高相位。在完成所有的访问时,GFACE 132完成DSP存储周期,并使DSP时钟返回其通常额定周期。如果在这一过程期间,微处理器101请求到全局存储器空间的访问,则DSP对微处理器访问后退一附加的时钟周期。
在优选实施例中,GFACE 132不包含相干性硬件,因而相干性在软件编程中维护。
AHB/APB桥113跨越主(全局)总线103与APB总线112。当任何AHB总线主机要访问位于APB上的地址空间时,该桥把信号从AHB转换到APB格式,以及当主总线操作在高于外围总线时钟(PCLK)的HCLK(高速时钟)速率时,对该信号重新定时。
微处理器101与专用的芯片上存储器子系统137配合操作,该子系统包括一8K×32 RAM及一个6K×16 ROM连接到局部选AHB总线104。微处理器101能够对RAM和ROM部分进行字节、半字和字的访问。包装138使RAM与ROM AHB适应从属装置。由于最好的ROM空间只是16位宽,当微处理器101进行字访问时,包装138向ROM发出两个连续读取,并把这两个读结果连接成32位字,使其返回微处理器101。
为了提高可测试性并减少产生测试结果的时间,在RAM部分装入一个弱-写测试电路,以加速RAM保持测试速度。RAM能够划分为两个相等规格的能够独立进入弱-写模式的存储体,使得当一个存储体乘以测试模式时,另一个能够用作为缓冲存储区用于测试程序。
TIC 108由微处理器101进行的调试,并作为AHB有最高优先权的总线主机。TIC总线连接示于图3的框图中。当在测试或发安全模式中允许进行系统调试时,TIC驱动器允许在整个系统中用于调试目的的所有地址-映射寄存器和/或存储器的访问。当TIC模式可行时,TIC使用外部存储器接口的32针作为32-位双向数据总线301。使用外部时钟(EXTCLKI)对主AHB总线103计时,以及用于使主AHB总线103与TIC总线同步化,使得外部TIC控制器能够通过TIC块访问作为AMBA总线主机的主AHB总线。当TIC 100由外部TIC驱动器软件占用时,用户能够通过TIC直接激励所有微处理器101装置,而无需由微处理器101处理器干预。
显示器接口110包括支持与一定数目的LCD显示器任何之一接口的一LCD显示控制器。具体来说,系统100可驱动STN(超扭绞向列)显示器面板,它比类似的有效TFT面板有需要较少功率的优势。LCD控制器与通用输入/输出端口140共享连接针。系统100的集成的LCD控制器,应用程序以320×240型分辨率优势桥接低端(字符显示)与高端(图形显示)之间的显示分辨率间隙。
图4是优选LCD接口/显示控制器110的一功能框图。在这一实施例中,显示器接口包括AHB总线主机401与以主AHB总线103动力操作的AHB从设备402两者。
时钟产生块403,通过按作为帧刷新率的函数选择的预比例因子划分来自总线103的AHBClk,而产生内部象素块(iPixClk)。这一时钟驱动显示控制器逻辑的主要部分,并表示单个象素或子象素。作为到外部装置的接口总线宽度的函数,时钟iCL2通过划分象素块产生,并在内部用于这样的操作,使得复用iCL2的数据允许多点每周期跨数据总线被计时。时钟CL2 OUT是在每周期通过外部面板一个与八个点之间计时的LCD点时钟,并类似于iCL2,对时钟CL1的过渡插入有空档时间。
时钟CL1是行闩脉冲并由水平-垂直(H&V)定时产生器405对一个时钟周期在显示行的末端产生(如LastDot所指)。CL1用来把点的行闩锁到缓冲器用于驱动显示器,并使LCD面板列驱动器增量以准备产生下一个显示行。此外,H&V定时产生器405产生LCD帧同步(FRM)及LCD AC偏转驱动信号。FRM信号由显示器面板用来复位列线1,并在收到来自总线主机401的帧结束信号之后产生。MCLK用来保证显示驱动器电压频率不会降落到DC。
DATA通路404包括一FIFO 406,作为可编程阈值信号FIFoTrash的函数,它由总线主机401保持以来自主总线103的数据填充(在AHB时钟域中)。数据是作为外部显示面板所需的每象素位数的函数,在象素时钟域中从FIFO读取的。从FIFO检索的数据用来对支持灰度的调色板寻址。数据通路404还进行诸如帧速率调制,混色(swizzle)及红色/蓝色交换等操作。帧速率调制是由LCD控制器使用的技术,利用液晶的慢速响应时间产生灰影。这一方法在经过多个帧时改变LCD象素的额定周期。
如图5中更为详细所示,DMA块106包括2个分开的DMA通道501和502,2-路仲裁器503,共享的AHB总线504,及共享的AHB寄存器从设备505。每一DMA通道501/502接收4-位DMA请求。这些请求从诸如USB端口114等系统资源发出。每一DMA通道能够独立地或专门用于任何请求信号。
AHB总线103基于管线地址及数据结构,因DMA转移操作一般如下进行。当可行时,给定的DMA通道501/502执行产生一AHB总线请求的一内部请求。当请求被准许时,适当的DMA通道信号基于内部的2-路仲裁器503及所选的通道被路由,并开始在总线上以前一数据周期被驱动源位置地址转移。在所有转移期间,各通道维持一内部通道锁信号。以便把DMA仲裁器503锁定在当前通道,使得有效的DMA通道能够不中断地完成转移。超时设定用来避免任何进程不足(starvation),并允许较高的优先权主机承担AHB总线103的控制。
对于每一DMA通道的源和目标的寻址能够被独立编程,以便增量,减量或保持在相同的值。一般来说,寄存器中的32-位源和目标地址指针定义DMA转移配置,并基于在寄存器中对每一通道设置的控制位配置增量或减量。如果增量或减量位是同一值,则相关的地址保持相同。这一欧洲用于往/来于I/O端口的转移。当进行特定长度的DMA的转移时,在寄存器中还设置最高到小于64K转移的一个转移计数值。
非同步转移寄存器位的软件配置启动,并只要DMA通道被授权访问总线就发生。同步转移是通过来自各种资源,诸如串行通道发送或接收缓冲器,DMA请求控制的DMA通道。
当由主AHB总线103上的不同总线主机发出同时总线访问请求时,仲裁器503遵从AMBA总线协议授权总线访问许可。又,系统100中有总共四个AMBA总线主机,且它们的总线访问优先权从最高到最低如下(1)TIC 108;(2)显示器接口110;(3)DMA控制器106;及(4)局部/主AHB接口105。
外部SRAM/快闪存储器控制器(SMC)107支持八个外部存储器块,每一具有最大6M字节的地址空间。在系统100的优选实施例中,使用4个SRAM块,每一带有1M-字节地址空间,与FLASHRAM的一个块一同示于图6中。每一存储体有其自己的配置寄存器,程序员能够使用该寄存器配置存储体支持特定类型外部存储器。图6中,标以BANK 0-3的存储体包括16-位外部SRAMs,且标以BANK4的存储体包括8-位宽外部快闪RAMs。
中断控制器126是一APB 112外围设备并由微处理器101配置。芯片中包括DSP中断的所有电平敏感的中断,通过这一块。图7是中断控制器126块的更详细的功能框图,该块基于ARM指定的中断控制器701。
在所示的实现中中断请求空间规格(IRQsize)为32。下面的17个断源(包括作为软件编程的中断IRQ1)是对微处理器101专用的。对于微处理器101 IRQs没有硬件优先权,因而软件中断处理程序读取微处理器101中的源寄存器并对维持的中断排优先权。FIQ(第一中断请求)是分开产生的flRQs,并还只被映射到微处理器101空间。
DIRQs(对于DSP的中断请求源)映射到更高的is IRQs。所有DSP中断能够通过在寄存器中设置位由软件f微处理器101产生。DIRQs能够分别通过设置微处理器-DS掩码寄存器702对微处理器101门断(gate off),并通过在掩码寄存器702设置DSP从DSP屏蔽。
读出检验器/音量监视器最好是一双斜率积分模拟到数字转换器(ADC),带有8位分辨率及标称采样率100Hz。框图如图8所提供。到ADC的输入来自2-1模拟复用器801,在微处理器控制下,或者选择电池电压或者选择音量输入电压。输出数据寄存器802是一32位寄存器,该寄存器在计数器807中表示当前采样值,较高24位设置为零。输出数存器802在每一采样周期被更新,并当数据被读取时产生对微处理器的中断。双斜率积分和A/D转换基于传统的积分器805和比较器804。启动、配置和状态数据是在逻辑808控制下通过在微处理器101空间内配置/状态寄存器803实现的。
系统100有两个相同的芯片上PLLs 121a,b,它们产生所有需要的时钟频率,用于操作处理器,设置音频采样率及对外围设备定时。系统时钟产生方案的框图示于图9。
两个PLLs 121a,b都使用芯片上32.768KHz振荡器120作为基准时钟。每一PLLs 121a,b包括一校准电路901,该电路能够考虑工作环境的变化,诸如温度和供电电压,向对应的VCO902a,b设置偏流。
第一PLL(PLL1)最好用来使用以除数D1,H1和G1设置除法器902a,c产生过采样音频频率(512FS),系统时钟SYSCLK,及UART时钟。SYSCLK进而由系统时钟除法器904分除而产生基本时钟HCLK(高速总线时钟),MCLK显示时钟,PCLK(外围设备时钟)及DSPCLK显示时钟。第二个PLL(PLL2)用来产生USB时钟将备份UART时钟。PLL2与除法器905a,b相关,它们通过按因子G2,与D2分除PLL输出产生这些时钟。预定标器906a,b通过值M1和M2在PLLs121a,b的输入之前分别支持基准时钟的分除。
下表示出这两个PLLs支持的频率和对应的配置。
对于PLL1的支持频率和除法器
对于PLL2的支持频率和除法器
MCLK/HCLK/PCLK/DSPCLK频率MCLK/HCLK/PCLK/DSPCLK频率
时钟控制块112包含对PLLs设置除数与其它操作参数所需的寄存器。
12C接口118进行两个基本功能,即激活芯片上启动的12C配置接口功能,与用于操作12C装置或类似的2和3导线串行装置的通用串行接口功能。
优选的实现允许连接到包含加电配置信息的外部串行EEPROM,这对于给定的系统配置可能是需要的。在硬件复位之后,状态机试图加载配置数据,并如果存在,配置数据的第一40个字节传送到一组芯片上配置寄存器。如果EEPROM装置不存在,或头标无效,则配置寄存器停留在它们先前的状态。EEPROM装置对于主处理器通过对控制寄存器的读/写可访问。
在通用控制接口模式下,12S接口能够用于通用目的I/O。每一针可作为输入或输出控制,并在软件控制下,能够实现各种串行接口。例如,接口118可配置为外部电源控制装置通信,诸如用来控制快闪EEPOM标称电压,及PCMCIA接口工作电压。
在所示的实施例中的USB端口114符合USB规范修正版1.1。其基本目的是要从主PC使用因特网访问下载或上传音乐文件。这一USB装置端口一般是自加电的并支持64-字节/数据包批入(bulk-in)和批出(bulk-out)模式,以及卖主/等级定制命令。由于该装置使用批量转移,它是全速的装置(12MBps)。在图10中提供了总框图。
USB装置控制器(UCD)1001与外部USB适应装置通过收发器1002接口,并与主总线103通过UDC总线1003和USB-AHB桥1004接口。桥1004使用专用控制及配置寄存器配置,并跨越总线103和1003。一对FIFO 1007a,b及相关状态机1008支持批量转移,其中一个FIFO可保持数据包,同时另一个与微处理器交换数据。
USB端口114能够在控制端点用于标准命令的配置0,或者在控制端点用于卖主/等级命令的配置1下操作。串陌生符控制逻辑1110在标准配置下解码串命令。卖主/等级命令不被解码,但可被存储并通过卖主/等级控制逻辑到微处理器中断。进而,在软件控制下微处理器101对卖主/等级命令解码。
微处理器101包含嵌入的IEEE标准边界扫描电路(JTAG)。使用支持驱动软件,JTAG允许用户查看微处理器内部状态,设置来自主应用程序的断点,施加特定的向量,及其它事情。
所示的实施例中DSP调试块141包括子块,其每一个能够计监视X/Y/P DSP存储器地址总线,维持对微处理器101或DSP 102的中断,或冻结DSP时钟,如果冻结可行。这些子块之一示于图11。
调试子块每一个具有1位只读“所有者”字段。当这一位为“0”时这一块的所有者是微处理器101,当这一位为“1”时,所有者是DSP 102。所有者能够写入“Other Wr”字段,如果设置允许其它处理器写入到调试块其余的字段。“Debug En”字段在调试块变为有效之前设置,并当这一块没有使用时,还用来节省功率。“ClkFreeze En”是1-位字段,当设置在调试事件触发时该字段冻结DSP时钟。“Men”是一2位字段,该字段选择存储器维护供调试事件。设置开始地址范围与结束地址范围,使得当地址在这些范围之间时事件触发。“Hit Count”跟踪调试事件已发生的次数。
Num_hits_for_trigger是在中断可行或设置冻结之前设置到该地址范围命中数的字段。
由于所有这些外围设备映射到DSP外围设备空间,调试DSP外围设备通过DSP调试块141支持。
处理器间通信块128允许微处理器101和DSP 102交换消息并同步且调度任务。通信主要作为两路中断驱动方案定义在系统(软件)实现级。这一块的硬件提供从DSP到微处理器101的数个中断源。(如前所述,微处理器101通过中断控制器中断DSP 102)。菜单的概念将由系统应用程序确定。
数字音频输入/输出129进而详细在图12中示出。这一块通过浪费基本子块12SOUT 1201与12SIN 1202提供了音频数据输入/输出。
12SIN 1202驱动音频输出数据针(Aud_out),并还向PWM 130和S/DFIF发送器1203提供音频数据和控制。在优选实施例中,通过每一个16个项深及24位宽的四个FIFO支持四个输出通道。通道配置是在可由微处理器101和/或DSP 102读和写的寄存器中实现的。当FIFO为空或半空使得FIFO能够被填充时,ISOUT块1202能够产生到控制微处理器DSP的中断。
SPDIF发送器1203从Ch_0和Ch_1以SPDIF格式通过aud_out针发送串行音频数据,并能够与PWM引擎1204及12SIN块1203一同使用。或者SPDIF发送器1203或者12SOUT 1201能够同时使用。
ISOUT块1202以两种格式之一接收音频输入数据通过LR/SCLK设时钟同步化的串行数据,或突发模式不与LRCLK同步化的位流。同步化数据能够或者是非压缩PCM或压缩的突发性数据,而非同步化数据能够是突发性压缩数据。这一块从12 SOUT块1201提取SCLK与LRCLK。在所示的实施例中,12SIN端口1202由两个通道FIFOs组成,每一个16个项深,且通道配置在寄存器中指定。当其FIFO或者是半满足或者满时,这一块产生到控制微处理器或DSP的中断以便对数据交换排序。
PWM块130产生左和右通道脉宽调制(PWM)数据,由于通过Aud_out端口驱动外部耳机或扬声器。
系统100具有总共32个通用I/O(GPIO)针,它们与其它功能针多路复用,并能够访问微处理器101。GPIO功能总的示于图1中的块140,并进而在图13中详细示出。
在所示的实施例中2个GPIO 1301针能够分别由微处理器101通过APB接口1302控制。每一GPIO针能够向微处理器101产生一中断请求,如果选择这样作。具体来说,响应在任何GPIO针处出现在寄存器中定义的四个事件之一,中断块1303产生一个中断请求。一附加的寄存器作为用于GPIO全局中断可行位,并通过一掩码寄存器进行各针选择。
安全熔丝块119包含256个熔丝,它们对每一芯片给出唯一的ID。当熔丝熔断时,一个标志使内部安全ROM有效。同时,通过基于256位熔丝值的硬件产生汉明码对错误隐藏和校正。熔丝值只是当熔丝被编程(熔断)时才是由安全代码可读的。取决于熔丝编程,不同的微处理器101 ROM段映射到微处理器101地址位置0供引导。内部12K字节微处理器101 ROM包含三个不同的段1K字节安全代码,1K字节交替代码,10K字节标准代码。
RAM测试块139包含一弱写控制器,能够把RAM置于弱写测试模式。在系统100中,为了弱写测试的目的,RAM被划分为高和低存储体。类似地,DSP RAM测试块144包含弱写控制器,用于测试DSP RAM的完整性。
当安全熔丝被编程时,安全选通/访问保护块142提供访问保护。在优选实施例中,在以下条件下授权访问许可(1)当熔丝没有被编程(非安全芯片)时,访问保护在任何时候都不接合;(2)当熔丝被编程(安全芯片)时,访问保护作为默认被接合;(3)当保护有效时,微处理器101只按管理人模式允许访问保护区;(4)当保护无效时,微处理器101可按监督人或用户模式允许访问保护区(5)只能由微处理器101以监督人模式使保护无效;(6)在安全模式下不允许TIC操作,且只有微处理器101能够使DMA和LCD有效;以及(7)保护模式寄存器只能能够由微处理器101在特许模式下修改。
系统100与支持微处理器101设计的“软高速缓存系统”配合操作,这种设计不包含以及高速缓存和/或存储器管理单元(MMU)。例如,在系统100的优选实施例中,在微处理器核101中使用ARM7tdmi微处理器。这一特定的微处理器不包含硬件高速缓存或MMU。
本发明的软高速缓存系统支持“易使用”软件开发模型,这在以前只能在基于全硬件高速缓存处理器的系统中可得。此外,这一软高速缓存把可执行代码的可用位置延伸到基于块和基于串行的存储器结构,如NAND快闪,MMC等。
历史上,嵌入的DSP和非高速缓存的CPU或者具有直接来自外部并行存储器(DRAM,SRAM,NOR FLASH)或来自内部SRAM/FLASH的运行代码。对于来自外部并行存储器的运行代码,CPU速度和能力受到负面影响。另一方面,内部SRAM/FLASH存储器一般小得多,因而在代码开发期间迫使直接进行存储器管理以保证正确的分页。特别是,所有的例行程序必须适配在一定的轨迹准则内以便允许分页和并发操作。在所有的代码以汇编语言开发的一定的应用程序中,这一限制可能涉及;但是对于快速代码开发使用较高级语言如“C”,则问题是难以解决的,如果不是不可能的。
基于块和基于程串行的存储器还需要高速缓存和/或分页方案非常不同的优化。例如,这些协议常常需要读取512字节块的信息并进行纠错以抽取必要的数据。在任何情形下,许多现有的协议和新的协议在继续发展,它们反映了刚性的硬连线支持的实现。
如以下进一步详细讨论的,这一软高速缓存系统对于低性能的代码解决了这些问题。其中,提供了硬件辅助以便管理现有的作为高速缓存的一般芯片上SRAM。此外,少于1000门控和软件异常终止处理程序的组合提供了管理驻留在NAND快闪中作为直接可执行的代码的装置。此外,这一高速缓存机制对于慢速率存储器以128,256,512可编程线规格及每线1k字节被优化,并使用16路集合相关逻辑在局部SRAM内提供16线高速缓存空间。
软高速缓存系统最好使用外部SRAM存储代码,并使用芯片上存储器存储数据常量或其它安全信息。在所示的实施例中,2M字节的外部和内部SRAM的虚拟(软高速缓存)存储器空间专用于软高速缓存,虽然存储器的规格以及位置不是严格的,并在实际的实现中能够改变。
软件高速缓存设置为16路置位相关系统,每一集合与软高速缓存存储器空间中单个高速缓存线相关。16个集合的每一集合在寄存器中由一标签字段和一有效性位表示。高速缓存线规格可编程为128,256,512,或1024字节。每一高速缓存线空间可通过N个低阶虚拟(CPU)地址位N-1:0可寻址,其中N是7,8,9或10,分别取决于高速缓存线规格是否为128,256,512,或1024字节。这时虚拟地址的位21:N表示高速缓存标签。其余的位31:22是到指定的存储器块的块地址,其能够由硬连线连逻辑控制。硬件比较器比较所产生的每一CPU地址标签字段与存储在软高速缓存寄存器中存储的标签字段。
在图14的流程图中示出软件高速缓存操作。
在步骤1401,虚拟(CPU)地址由微处理器101产生,然后该地址在步骤1402被检验以确定其块地址是否在软高速缓存地址空间内。将首先考虑虚拟地址在软高速缓存地址空间内的情形。
在步骤1403,来自虚拟地址的高速缓存标签与对应的16个寄存器项中的标签字段由硬件比较器比较。如果出现匹配,则提取对应于软高速缓存中的匹配项的索引,用于产生指向软高速缓存存储器块中适当位置物理地址。对于16位高速缓存系统,使用从0到15四位索引这些项。在软高速缓存地址空间以0000开始并向上工作的实施例中,CPU地址的位N-1:0变为物理地址的位N-1:0及高速缓存线中的地址位置。来自匹配软高速缓存项的4位索引代替物理地址的位N+3:N,并作为选择正确高速缓存线的偏移操作。其余的位(31:N+4)来自虚拟地址并用于RAM存储体,块及芯片选择。随后发生对软高速缓存存储器空间地址区所需的读和写。
例如,假设高速缓存线规格被编程为256字节。这种情形下,N=8。因而CPU地址的位21:8与表项中的高速缓存标签比较。还假设命中发生在项#5,且对应的4位索引是5。物理简化,存储器的软可高速缓存块将有任意选择的开始地址0。因而物理地址(16进制)是000005CC,其中CC是到高速缓存线5内位置的CPU地址的位7:0。
注意,存储器中的软高速缓存区能够在给定的地址开始,例如7fff,并向下工作。这种情形下,基于高速缓存规格修改位14:N。这一方案保证了维持中断向量的位置0000不会变为高速缓存的一部分。
以下考虑在比较步骤1403期间出现高速缓存故障的情形。维护一硬件软高速缓存历史寄存器,它跟踪最后四位(匹配)。这一寄存器最好是移位寄存器,从每一匹配项以四位索引移位,如果索引不同于先前匹配索引的索引。换言之,如果两个相继的索引相同,则没有移位发生,使得在移位寄存器中没有两个相继的索引相等。这一寄存器改进了高速缓存故障时调用的软件替代处理机的性能。
在故障时,通过在寄存器中设置一异常中断状态,软高速缓存异常中断通知给微处理器101。(读取之后这一位被自动清除)。引起高速缓存故障(异常中断)的地址被写入异常中断地址寄存器。设置异常中断位启动了替代处理机例行程序。
替代处理机例行程序基于历史寄存器的内容选择被替代的高速缓存线。例如,被替代的高速缓存线可以是不对应于存储在历史寄存器中四个索引的那些之一。使用异常中断地址寄存器中并加载到所选的高速缓存线的地址,所需的数据从存储器中其当前位置取得,且对应的高速缓存项中高速缓存索引被更新。源位置可在NAND或串行快闪中,且软件处理机功能进行特定的那些类型存储器通常所需的访问过程。为了实现这一存储器,DMA引擎和其它系统资源按需要被调用。一旦数据已被高速缓存,且高速缓存标签被更新,则引起高速缓存故障的指令能够被重新成功发出。
在CPU地址不在软高速缓存地址空间内且异常中断没有发生的情形下,则CPU地址用作为到RAM的物理地址(步骤1407)。
在步骤1408,物理地址用来访问地址的RAM空间。在步骤1409与CPU交换数据。
本软高速缓存的一个示例性使用是系统100的数字音频播放器应用程序。例如,所有低性能代码可直接通过软高速缓存运行,只有高性能代码(USB,音频解码器,及中断处理机)直接由程序员管理。
总之,本发明的概念提供了一种机制,用于高速缓存只有有限或没有硬件高速缓存能力的装置和系统中的数据。此外,由于以软件进行高速缓存故障的替代,能够使用具有特定访问协议的存储器,诸如在MPEG 3音乐系统中典型使用的NAND快闪存储器,建立有效的接口。
虽然参照特定的实施例对本发明进行了说明,但这些说明不应当以限制的意义来解释。所公开的实施例的各种修改,以及本发明可替代的实施例在参照本发明的说明时,对于业内专业人员是显而易见的。业内专业人员当可看到所公开的概念和特定实施例作为基础易用于修改或设计其它结构,用于实施本发明相同的目的。业内专业人员还应当理解,这种等价的结构并不背离所附权利要求中提出本发明的精神和范围。
因而,预期权利要求将覆盖任何这种修改或属于本发明有效范围内的实施例。
权利要求
1.一种软高速缓存系统,进行以下操作比较虚拟地址标签位与多个寄存器项中编程的标签位,每一项与到虚拟高速缓存空间中可编程高速缓存线规格的高速缓存线的索引相关联,虚拟高速缓存空间位置通过虚拟地址的块地址部分编程;当虚拟地址的标签位匹配可编程寄存器项之一的标签位时,选择对应于所述项的索引以产生物理地址;以及使用从虚拟存储器选择的索引,作为对高速缓存线和块地址的偏移,产生物理地址作为到虚拟高速缓存空间的地址。
2.权利要求1的软高速缓存系统,当虚拟地址的标签位不匹配寄存器项之一的标签字段时,还进行以下操作在虚拟高速缓存空间中选择高速缓存线用于对与虚拟地址相关的数据进行高速缓存;使用虚拟地址从存储器的第二区检索数据;在虚拟高速缓存空间中选择的高速缓存线中高速缓存该数据;以及更新与选择的高速缓存线相关的寄存器中的标签位。
3.权利要求1的软高速缓存系统,其中高速缓存线规格可编程为M数目位置,且虚拟地址包含索引M个数目的高速缓存线位置的log2M数目的位。
4.权利要求3的软高速缓存系统,其中M个数目位置包括字节位置。
5.权利要求4的软高速缓存系统,其中高速缓存线规格从由128,256,512和1024个字节构成的组中选择。
6.权利要求1的软高速缓存系统,其中高速缓存系统包括一X-路集合相关系统,该集合相关系统具有存储log2X数目的标签位的X数目寄存器项。
7.权利要求6的软高速缓存系统,其中高速缓存系统包括一16-路集合相关系统并且该多个寄存器项每一个存储4位。
8.一种数据高速缓存方法,包括以下步骤建立一M-路集合相关高速缓存,包括具有M数目对应项的一寄存器,每一项存储一标签值并被索引到存储器中选择的一高速缓存区中的一高速缓存线;对高速缓存线设置一高速缓存线规格,高速缓存标签值选择为所选的高速缓存线规格的函数;产生包含一标签字段的一虚拟地址,对在高速缓存线规格内位置寻址的高速缓存线地址字段,以及在存储器中对高速缓存区寻址的块地址字段;比较虚拟地址的标签字段与高速缓存中标签值;以及当虚拟地址的标签字段匹配高速缓存中标签值时,产生一到对应的高速缓存线的物理地址,其索引与包含匹配标签值及来自虚拟地址的高速缓存线及块地址字段的寄存器项相关。
9.权利要求8的方法,还包括使用与匹配的标签值相关的索引更新历史寄存器的步骤。
10.权利要求9的方法,还包括以下步骤当虚拟地址的标签字段不匹配寄存器中的标签值时,使用虚拟地址访问存储器中对应的区;从存储在历史寄存器中的信息选择来自存储器中高速缓存区的替代高速缓存线;从以虚拟地址访问的存储器中对应的区,向存储器的高速缓存区中的替代高速缓存线转移数据;以及把与索引相关的的寄存器项更新到带有来自虚拟地址标签的替代高速缓存线。
11.权利要求9的方法,其中所述更新历史寄存器的步骤包括向位移寄存器位移索引的步骤。
12.权利要求9的方法,其中所述更新历史寄存器的步骤包括存储多个非等同索引的步骤。
13.权利要求9的方法,其中所述建立高速缓存的步骤包括建立一硬件寄存器的步骤,该硬件寄存器具有用于存储标签值及向高速缓存线索引的多个项。
14.权利要求9的方法,还包括以下步骤确定虚拟地址的块地址字段是否对应于存储器中高速缓存区;以及如果虚拟地址的块地址不对应于存储器中高速缓存区,使用虚拟地址对存储器寻址。
15.权利要求9的方法,其中存储器中的高速缓存区包括在随机访问存储器中的一区域。
16.权利要求9的方法,其中存储器中的高速缓存区包括在快闪存储器中的一区域。
17.一种系统,包括一个中央处理单元;一个包括软高速缓存空间的存储器,以及一个软高速缓存系统,用于响应来自中央处理单元的地址访问软高速缓存空间中的数据,包括一寄存器,具有多个项,其每一个用于存储高速缓存标签并向软高速缓存空间中的高速缓存线索引,高速缓存线具有可编程高速缓存线规格;多个比较器,用于比较来自中央处理单元的地址的标签字段,与存储在寄存器每一项中的高速缓存标签;以及用于产生到软高速缓存空间的地址的电路,当标签字段匹配寄存器中的标签值时,使用与存储匹配高速缓存标签项相关的索引,及从来自中央处理单元的地址选择的位,寻址软高速缓存空间。
18.权利要求17的系统,其中所述中央处理单元包括一芯片上系统的一部分。
19.权利要求18的系统,其中所述存储器形成所述芯片上系统的部分。
20.权利要求18的系统,其中所述存储器在所述芯片上系统的外部。
21.权利要求17的系统,其中所述中央处理单元和所述存储器形成一便携式音频系统的部分。
全文摘要
软高速缓存系统比较虚拟地址标志位(来自N-21的位)与多个软高速缓存寄存器项(TAG 0-TAG 15)的标志字段(field),每一项与到虚拟存储器中对应的高速缓存线的索引(0-15)相关。用于高速缓存线的高速缓存线规格是可编程的。当虚拟地址的标志位(来自N-21的位)匹配软高速缓存项之一的标志字段时,选择来自该项的索引(0-15)用于产生物理地址。使用所选的索引产生物理地址作为对存储器中对应的软高速缓存空间的偏移字段(来自7-10的位)。
文档编号G06F12/08GK1498369SQ02807176
公开日2004年5月19日 申请日期2002年3月20日 优先权日2001年3月30日
发明者格里戈里·A·诺思, 格里戈里 A 诺思 申请人:祥云逻辑有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1