CN1310156C - 使用带有软高速缓存的片上系统的系统与方法 - Google Patents

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

Info

Publication number
CN1310156C
CN1310156C CNB02807176XA CN02807176A CN1310156C CN 1310156 C CN1310156 C CN 1310156C CN B02807176X A CNB02807176X A CN B02807176XA CN 02807176 A CN02807176 A CN 02807176A CN 1310156 C CN1310156 C CN 1310156C
Authority
CN
China
Prior art keywords
cache
address
register
storer
cache line
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.)
Expired - Fee Related
Application number
CNB02807176XA
Other languages
English (en)
Other versions
CN1498369A (zh
Inventor
格里戈里·A·诺思
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cirrus Logic Inc
Original Assignee
Cirrus Logic Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cirrus Logic Inc filed Critical Cirrus Logic Inc
Publication of CN1498369A publication Critical patent/CN1498369A/zh
Application granted granted Critical
Publication of CN1310156C publication Critical patent/CN1310156C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0886Variable-length word access
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • G06F12/1045Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB] associated with a data cache

Abstract

软高速缓存系统比较虚拟地址标志位(来自N-21的位)与多个软高速缓存寄存器项(TAG 0-TAG 15)的标志字段(field),每一项与到虚拟存储器中对应的高速缓存线的索引(0-15)相关。用于高速缓存线的高速缓存线规格是可编程的。当虚拟地址的标志位(来自N-21的位)匹配软高速缓存项之一的标志字段时,选择来自该项的索引(0-15)用于产生物理地址。使用所选的索引产生物理地址作为对存储器中对应的软高速缓存空间的偏移字段(来自7-10的位)。

Description

使用带有软高速缓存的 片上系统的系统与方法
技术领域
本发明一般涉及集成电路,并特别涉及带有软高速缓存的芯片上系统,及使用这种系统的方法。
背景技术
随着新技术生产出带有高级功能性可购买的装置,手持式个人电子器具日益普及。一种这样的器具是便携式数字音频播放器,装置播放器下载数字音频数据,在可读写存储器中存储这些数据,并按用户要求把这些数据转换为音频。数字数据是以包括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的支持频率和除法器
  f_ref(KHz)   f_VCO(MHz)   f_PD(KHz)   f_512FS(MHz)   FS(KHz)   f_UARTCLK1(MHz)   f_SYSCLK(MHz)   M1   N1   D1   G1   H1
  32.768   147.456   32.768   24.576   48.000   3.6864   73.728   1   4500   6   40   2
  32.768   158.073   32.768   22.582   44.105   3.6761   79.037   1   4824   7   43   2
  32.786   147.456   32.768   16.384   32.000   3.6864   73.728   1   4500   9   40   2
对于PLL2的支持频率和除法器
  f_ref(KHz)   f_VCO(MHz)   f_PD(KHz)  f_512FS(MHz)   FS(KHz) f_UARTCLK2(MHz)   F_USBCLK(MHz)   M2   N2   D2   G2   H2
  32.768   48.005   32.768  N/A   N/A 3.6927   48.005   1   1465   1   13   N/A
  32.768   47.972   32.768  N/A   N/A 3.6902   47.972   1   1464   1   13   N/A
  32.768   47.940   32.768  N/A   N/A 3.6877   47.940   1   1463   1   13   N/A
MCLK/HCLK/PCLK/DSPCLK频率       MCLK/HCLK/PCLK/DSPCLK频率
f_SYSCLK(MHz)   除法器值(MCLKDIV/HCLKDIV/PCLKDIV/DSPCLKDIV)   频率(MHz)(f_MCLK/f_HCLK/f_PCLK/f_DSPCLK)
73.728   1   73.728
73.728   1.5   49.152
73.728   2   36.864
73.728   3   24.576
73.728   4   18.432
73.728   5   14.745
73.728   6   12.288
73.728   7   10.533
73.728   8   9.216
79.037   1   79.037
79.037   1.5   52.691
79.037   2   39.519
79.037   3   26.346
79.037   4   19.759
79.037   5   15.807
79.037   6   13.173
79.037   7   11.291
79.037   8   9.880
时钟控制块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位熔丝值的硬件产生汉明码对错误隐藏和校正。熔丝值只是当熔丝被编程(熔断)时才是由安全代码可读的。取决于熔丝编程,不同的微处理器101ROM段映射到微处理器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快闪存储器,建立有效的接口。
虽然参照特定的实施例对本发明进行了说明,但这些说明不应当以限制的意义来解释。所公开的实施例的各种修改,以及本发明可替代的实施例在参照本发明的说明时,对于业内专业人员是显而易见的。业内专业人员当可看到所公开的概念和特定实施例作为基础易用于修改或设计其它结构,用于实施本发明相同的目的。业内专业人员还应当理解,这种等价的结构并不背离所附权利要求中提出本发明的精神和范围。
因而,预期权利要求将覆盖任何这种修改或属于本发明有效范围内的实施例。

Claims (18)

1.一种在高速缓存系统中执行软高速缓存操作的方法,包括步骤:
比较虚拟地址标签位与在多个寄存器项中编程的标签位,其每一项与到虚拟高速缓存空间中可编程高速缓存线规格的高速缓存线的索引相关联,存储器空间中的虚拟高速缓存空间单元由虚拟地址的块地址部分编程,以及高速缓存线规格由虚拟地址中的字段编程;
当虚拟地址的标签位匹配可编程寄存器项之一的标签位时,选择对应于所述项的索引以产生物理地址;以及
使用所选择的索引作为对高速缓存线的偏移以及来自虚拟地址的块地址来产生物理地址作为到虚拟高速缓存空间的地址;以及
当虚拟地址的标签位不匹配寄存器项之一的标签位时:
在虚拟高速缓存空间中选择高速缓存线用于对与虚拟地址相关的数据进行高速缓存;
使用虚拟地址从存储器的第二区检索与该虚拟地址相关的数据;
在虚拟高速缓存空间中选择的高速缓存线中高速缓存该从存储器的第二区检索的数据;以及
更新寄存器中的与选择的高速缓存线相关的标签位。
2.权利要求1的执行软高速缓存操作的方法,其中高速缓存线规格可编程为M个数目的单元,且虚拟地址包含索引M个数目的高速缓存线单元的log2M数目的位。
3.权利要求2的执行软高速缓存操作的方法,其中M个数目的单元包括字节单元。
4.权利要求3的执行软高速缓存操作的方法,其中高速缓存线规格从由128、256、512和1024个字节构成的组中选择。
5.权利要求1的执行软高速缓存操作的方法,其中高速缓存系统包括X-路组相联系统,该组相联系统具有存储log2X个数目的标签位的X个数目的寄存器项。
6.权利要求5的执行软高速缓存操作的方法,其中高速缓存系统包括16-路组相联系统,并且该多个寄存器项的每一个存储4位。
7.一种数据高速缓存方法,包括以下步骤:
建立M-路组相联高速缓存,包括具有M个数目的对应项的寄存器,每一项存储一标签值并被索引到存储器中选择的高速缓存区中的高速缓存线;
对高速缓存线设置高速缓存线规格,依据所选的高速缓存线规格选择高速缓存标签值;
产生包含标签字段、对在高速缓存线规格内的单元寻址的高速缓存线地址字段以及对在存储器中的高速缓存区寻址的块地址字段的虚拟地址;
比较虚拟地址的标签字段与高速缓存中的标签值;
当虚拟地址的标签字段匹配高速缓存中的标签值时,利用与包含匹配的标签值的寄存器项相关的索引以及来自虚拟地址的高速缓存线地址字段和块地址字段产生到对应的高速缓存线的物理地址;
使用与匹配的标签值相关的索引更新历史寄存器;以及
当虚拟地址的标签字段不匹配寄存器中的标签值时,使用虚拟地址访问存储器中的对应区;
根据存储在历史寄存器中的信息从存储器的高速缓存区中选择替代高速缓存线;
将用虚拟地址寻址的存储器的对应区中的数据转移到存储器的高速缓存区中的替代高速缓存线上;以及
用来自虚拟地址的标签更新与到替代高速缓存线的索引相关的寄存器项。
8.权利要求7的方法,其中所述更新历史寄存器的步骤包括向移位寄存器移位索引的步骤。
9.权利要求7的方法,其中所述更新历史寄存器的步骤包括存储多个非等同索引的步骤。
10.权利要求7的方法,其中所述建立高速缓存的步骤包括建立硬件寄存器的步骤,该硬件寄存器具有用于存储标签值及索引到高速缓存线的多个项。
11.权利要求7的方法,还包括以下步骤:
确定虚拟地址的块地址字段是否对应于存储器中的高速缓存区;以及
如果虚拟地址的块地址不对应于存储器中的高速缓存区,使用虚拟地址对存储器寻址。
12.权利要求7的方法,其中存储器中的高速缓存区包括在随机存取存储器中的一区域。
13.权利要求7的方法,其中存储器中的高速缓存区包括在快闪存储器中的一区域。
14.一种系统,包括:
中央处理单元;
包含软高速缓存空间的存储器,以及
软高速缓存系统,用于响应来自中央处理单元的地址访问在存储器空间中的可编程单元上的软高速缓存空间中的数据,包括:
寄存器,具有多个项,其中每一项用于存储高速缓存标签并索引到软高速缓存空间中的高速缓存线,高速缓存线具有可编程高速缓存线规格;
多个比较器,用于将来自中央处理单元的地址的标签字段与存储在寄存器的每一项中的高速缓存标签进行比较;
当标签字段匹配寄存器中的高速缓存标签时,使用与存储着匹配的高速缓存标签的项相关的索引以及从来自中央处理单元的地址中所选择的寻址软高速缓存空间的位来产生到软高速缓存空间的地址的电路;以及
当标签字段不匹配寄存器中的高速缓存标签时,更新软高速缓存空间中的数据的电路,并且该电路可操作用于在软高速缓存空间中选择高速缓存线以高速缓存与来自中央处理单元的地址相关的数据,利用来自中央处理单元的地址从存储器空间的第二区中检索数据,将存储器空间的第二区中的数据高速缓存到所选的高速缓存线中,以及更新寄存器中的与所选的高速缓存线相关的高速缓存标签。
15.权利要求14的系统,其中所述中央处理单元构成片上系统的一部分。
16.权利要求15的系统,其中所述存储器构成所述片上系统的一部分。
17.权利要求15的系统,其中所述存储器在所述片上系统的外部。
18.权利要求14的系统,其中所述中央处理单元和所述存储器构成便携式音频系统的一部分。
CNB02807176XA 2001-03-30 2002-03-20 使用带有软高速缓存的片上系统的系统与方法 Expired - Fee Related CN1310156C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/822,645 2001-03-30
US09/822,645 US6622208B2 (en) 2001-03-30 2001-03-30 System and methods using a system-on-a-chip with soft cache

Publications (2)

Publication Number Publication Date
CN1498369A CN1498369A (zh) 2004-05-19
CN1310156C true CN1310156C (zh) 2007-04-11

Family

ID=25236598

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB02807176XA Expired - Fee Related CN1310156C (zh) 2001-03-30 2002-03-20 使用带有软高速缓存的片上系统的系统与方法

Country Status (6)

Country Link
US (1) US6622208B2 (zh)
EP (1) EP1388066A4 (zh)
JP (1) JP2004523051A (zh)
CN (1) CN1310156C (zh)
TW (1) TW586059B (zh)
WO (1) WO2002079995A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877929B2 (en) 2007-08-04 2011-02-01 Rezzorb, Llc Method and apparatus for reducing fertilizer use in agricultural operations

Families Citing this family (95)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080071973A1 (en) * 2000-01-06 2008-03-20 Chow David Q Electronic data flash card with various flash memory cells
US7830666B2 (en) 2000-01-06 2010-11-09 Super Talent Electronics, Inc. Manufacturing process for single-chip MMC/SD flash memory device with molded asymmetric circuit board
US7466556B2 (en) * 1999-08-04 2008-12-16 Super Talent Electronics, Inc. Single chip USB packages with swivel cover
US8141240B2 (en) 1999-08-04 2012-03-27 Super Talent Electronics, Inc. Manufacturing method for micro-SD flash memory card
US7872871B2 (en) * 2000-01-06 2011-01-18 Super Talent Electronics, Inc. Molding methods to manufacture single-chip chip-on-board USB device
US8043099B1 (en) 2004-02-12 2011-10-25 Super Talent Electronics, Inc. Extended USB plug, USB PCBA, and USB flash drive with dual-personality
US8102662B2 (en) * 2007-07-05 2012-01-24 Super Talent Electronics, Inc. USB package with bistable sliding mechanism
US7690031B2 (en) * 2000-01-06 2010-03-30 Super Talent Electronics, Inc. Managing bad blocks in flash memory for electronic data flash card
US8078794B2 (en) * 2000-01-06 2011-12-13 Super Talent Electronics, Inc. Hybrid SSD using a combination of SLC and MLC flash memory arrays
US7628622B2 (en) * 1999-08-04 2009-12-08 Super Talent Electronics, Inc. Multi-level cell (MLC) slide flash memory
US8625270B2 (en) 1999-08-04 2014-01-07 Super Talent Technology, Corp. USB flash drive with deploying and retracting functionalities using retractable cover/cap
US7702831B2 (en) * 2000-01-06 2010-04-20 Super Talent Electronics, Inc. Flash memory controller for electronic data flash card
US7984303B1 (en) 2000-01-06 2011-07-19 Super Talent Electronics, Inc. Flash memory devices with security features
US7535719B2 (en) * 1999-08-04 2009-05-19 Super Talent Electronics, Inc. Single chip USB packages with contact-pins cover
US7447037B2 (en) * 1999-08-04 2008-11-04 Super Talent Electronics, Inc. Single chip USB packages by various assembly methods
US7744387B2 (en) * 1999-08-04 2010-06-29 Super Talent Electronics, Inc. Multi-level cell (MLC) rotate flash memory device
US8073985B1 (en) 2004-02-12 2011-12-06 Super Talent Electronics, Inc. Backward compatible extended USB plug and receptacle with dual personality
US7440287B1 (en) 2000-01-06 2008-10-21 Super Talent Electronics, Inc. Extended USB PCBA and device with dual personality
US20050160218A1 (en) * 2004-01-20 2005-07-21 Sun-Teck See Highly integrated mass storage device with an intelligent flash controller
US7874067B1 (en) 2000-01-06 2011-01-25 Super Talent Electronics, Inc. Manufacturing method for single chip COB USB devices with optional embedded LED
US7702984B1 (en) 2000-01-06 2010-04-20 Super Talent Electronics, Inc. High volume testing for USB electronic data flash cards
US20080082813A1 (en) * 2000-01-06 2008-04-03 Chow David Q Portable usb device that boots a computer as a server with security measure
US7788553B2 (en) * 2000-01-06 2010-08-31 Super Talent Electronics, Inc. Mass production testing of USB flash cards with various flash memory cells
US20080286990A1 (en) * 2003-12-02 2008-11-20 Super Talent Electronics, Inc. Direct Package Mold Process For Single Chip SD Flash Cards
US20060161725A1 (en) * 2005-01-20 2006-07-20 Lee Charles C Multiple function flash memory system
US8240034B1 (en) 2000-01-06 2012-08-14 Super Talent Electronics, Inc. High throughput manufacturing method for micro flash memory cards
US7690030B1 (en) 2000-01-06 2010-03-30 Super Talent Electronics, Inc. Electronic data flash card with fingerprint verification capability
US7676640B2 (en) * 2000-01-06 2010-03-09 Super Talent Electronics, Inc. Flash memory controller controlling various flash memory cells
US20030101280A1 (en) * 2001-11-27 2003-05-29 Chiu Kenneth Y. Fast jump address algorithm
US7174429B2 (en) * 2001-12-28 2007-02-06 Intel Corporation Method for extending the local memory address space of a processor
US7403981B2 (en) * 2002-01-04 2008-07-22 Quicksilver Technology, Inc. Apparatus and method for adaptive multimedia reception and transmission in communication environments
US7266848B2 (en) * 2002-03-18 2007-09-04 Freescale Semiconductor, Inc. Integrated circuit security and method therefor
KR100456696B1 (ko) * 2002-05-21 2004-11-10 삼성전자주식회사 집적회로장치의 버스중재기
US6831583B1 (en) * 2002-11-05 2004-12-14 Analog Devices, Inc. Integrated circuit comprising a microprocessor and an analogue to digital converter which is selectively operable under the control of the microprocessor and independently of the microprocessor, and a method for operating the integrated circuit
US20050021925A1 (en) * 2003-07-25 2005-01-27 Clark Lawrence T. Accessing in parallel stored data for address translation
US6885227B2 (en) * 2003-07-29 2005-04-26 Lattice Semiconductor Corporation Clock generator with skew control
US7019577B2 (en) * 2003-07-29 2006-03-28 Lattice Semiconductor Corporation Clock generator
US8998620B2 (en) * 2003-12-02 2015-04-07 Super Talent Technology, Corp. Molding method for COB-EUSB devices and metal housing package
US7771215B1 (en) 2003-12-02 2010-08-10 Super Talent Electronics, Inc. MLC COB USB flash memory device with sliding plug connector
US8102657B2 (en) 2003-12-02 2012-01-24 Super Talent Electronics, Inc. Single shot molding method for COB USB/EUSB devices with contact pad ribs
US7872873B2 (en) 2003-12-02 2011-01-18 Super Talent Electronics, Inc. Extended COB-USB with dual-personality contacts
US7440286B2 (en) * 2005-04-21 2008-10-21 Super Talent Electronics, Inc. Extended USB dual-personality card reader
EP1710707B1 (en) * 2004-01-13 2013-04-03 Seiko Instruments Inc. Memory interface device, memory interface method, and modem device
US8014130B1 (en) 2004-02-26 2011-09-06 Super Talent Electronics, Inc. Pen-like universal serial bus (USB) flash drive with deploying and retracting functionalities
US7815469B1 (en) 2004-02-12 2010-10-19 Super Talent Electronics, Inc. Dual-personality extended USB plugs and receptacles using with PCBA and cable assembly
US8021166B1 (en) 2004-02-12 2011-09-20 Super Talent Electronics, Inc. Extended USB plug, USB PCBA, and USB flash drive with dual-personality for embedded application with mother boards
US7869219B2 (en) * 2004-01-20 2011-01-11 Super Talent Electronics, Inc. Flash drive with spring-loaded retractable connector
US7806705B2 (en) * 2004-02-26 2010-10-05 Super Talent Electronics, Inc. Slide flash memory devices
US20080147964A1 (en) * 2004-02-26 2008-06-19 Chow David Q Using various flash memory cells to build usb data flash cards with multiple partitions and autorun function
US7664902B1 (en) 2004-03-16 2010-02-16 Super Talent Electronics, Inc. Extended SD and microSD hosts and devices with USB-like high performance packetized interface and protocol
US7526608B2 (en) * 2004-05-28 2009-04-28 Sony Computer Entertainment Inc. Methods and apparatus for providing a software implemented cache memory
US20080195817A1 (en) * 2004-07-08 2008-08-14 Super Talent Electronics, Inc. SD Flash Memory Card Manufacturing Using Rigid-Flex PCB
US7850082B1 (en) 2004-10-01 2010-12-14 Super Talent Electronics, Inc. Extended universal serial bus (USB) card reader
US7660938B1 (en) 2004-10-01 2010-02-09 Super Talent Electronics, Inc. Flash card reader and data exchanger utilizing low power extended USB protocol without polling
US7305526B2 (en) * 2004-11-05 2007-12-04 International Business Machines Corporation Method, system, and program for transferring data directed to virtual memory addresses to a device memory
US7461190B2 (en) * 2005-08-11 2008-12-02 P.A. Semi, Inc. Non-blocking address switch with shallow per agent queues
US7395401B2 (en) * 2005-09-30 2008-07-01 Sigmatel, Inc. System and methods for accessing solid-state memory devices
CN100409203C (zh) * 2005-10-14 2008-08-06 杭州中天微系统有限公司 一种低功耗高速缓存的实现方法及其高速缓存器
US7547218B2 (en) * 2005-10-24 2009-06-16 Super Talent Electronics Inc. Plug and cap for a universal-serial-bus (USB) device
US7356671B1 (en) * 2006-07-27 2008-04-08 Vbridge Microsystem, Inc. SoC architecture for voice and video over data network applications
TWI376605B (en) * 2006-09-04 2012-11-11 Novatek Microelectronics Corp Method and apparatus for enhancing data rate of advanced micro-controller bus architecture
US8370575B2 (en) * 2006-09-07 2013-02-05 International Business Machines Corporation Optimized software cache lookup for SIMD architectures
JP4956143B2 (ja) * 2006-11-02 2012-06-20 株式会社東芝 半導体メモリカード、ホスト装置、及びデータ転送方法
US8254134B2 (en) * 2007-05-03 2012-08-28 Super Talent Electronics, Inc. Molded memory card with write protection switch assembly
US7850468B2 (en) 2007-06-28 2010-12-14 Super Talent Electronics, Inc. Lipstick-type USB device
US7789680B2 (en) * 2007-07-05 2010-09-07 Super Talent Electronics, Inc. USB device with connected cap
US8102658B2 (en) * 2007-07-05 2012-01-24 Super Talent Electronics, Inc. Micro-SD to secure digital adaptor card and manufacturing method
US7944702B2 (en) 2007-08-27 2011-05-17 Super Talent Electronics, Inc. Press-push flash drive apparatus with metal tubular casing and snap-coupled plastic sleeve
US8241047B2 (en) * 2007-10-30 2012-08-14 Super Talent Electronics, Inc. Flash drive with spring-loaded swivel connector
US8116083B2 (en) * 2007-12-04 2012-02-14 Super Talent Electronics, Inc. Lipstick-type USB device with tubular housing
US8527974B2 (en) * 2008-03-28 2013-09-03 International Business Machines Corporation Data transfer optimized software cache for regular memory references
US8561043B2 (en) * 2008-03-28 2013-10-15 International Business Machines Corporation Data transfer optimized software cache for irregular memory references
US7817097B2 (en) * 2008-04-07 2010-10-19 Toyota Motor Engineering & Manufacturing North America, Inc. Microwave antenna and method for making same
US8243714B1 (en) * 2008-05-05 2012-08-14 Agilent Technologies, Inc. Method and apparatus for hierarchial system synchronization
US8561044B2 (en) * 2008-10-07 2013-10-15 International Business Machines Corporation Optimized code generation targeting a high locality software cache
US8234543B2 (en) * 2009-03-06 2012-07-31 Via Technologies, Inc. Detection and correction of fuse re-growth in a microprocessor
US8281198B2 (en) * 2009-08-07 2012-10-02 Via Technologies, Inc. User-initiatable method for detecting re-grown fuses within a microprocessor
US8631207B2 (en) * 2009-12-26 2014-01-14 Intel Corporation Cache memory power reduction techniques
US8762644B2 (en) * 2010-10-15 2014-06-24 Qualcomm Incorporated Low-power audio decoding and playback using cached images
TWI448900B (zh) * 2010-11-26 2014-08-11 Weltrend Semiconductor Inc 雙匯流排並行的運作架構
WO2012109770A1 (en) * 2011-02-18 2012-08-23 Intel Corporation (A Corporation Of Delaware) Techniques to request stored data from a memory
CN102231142B (zh) * 2011-07-21 2013-12-11 浙江大学 一种带有仲裁器的多通道dma控制器
CN104137084B (zh) * 2011-12-28 2017-08-11 英特尔公司 提高耐久性和抗攻击性的用于pcm缓存的有效动态随机化地址重映射
KR20140035082A (ko) * 2012-09-13 2014-03-21 삼성전자주식회사 메모리 관리방법
CN103226526A (zh) * 2013-04-19 2013-07-31 无锡云动科技发展有限公司 一种存储器访问控制装置
TWI493206B (zh) * 2013-07-30 2015-07-21 Ind Tech Res Inst 積體電路裝置及串列式壓縮掃描訊號產生裝置之測試存取埠狀態機的控制方法
CN104636268B (zh) * 2013-11-08 2019-07-26 上海芯豪微电子有限公司 一种可重构缓存产品与方法
GB2554167B (en) * 2014-05-01 2019-06-26 Imagination Tech Ltd Approximating functions
US9760492B2 (en) * 2014-11-21 2017-09-12 Mediatek Singapore Pte. Ltd. Method for controlling access of cache through using programmable hashing address and related cache controller
KR102421311B1 (ko) * 2016-11-29 2022-07-18 에이알엠 리미티드 태그 매칭 명령에 응답하는 저장회로
CN110851372B (zh) * 2018-08-20 2023-10-31 慧荣科技股份有限公司 储存装置及快取区定址方法
US11137932B2 (en) * 2019-12-02 2021-10-05 Western Digital Technologies, Inc. Pad indication for device capability
CN113609037B (zh) * 2021-06-30 2024-04-16 山东云海国创云计算装备产业创新中心有限公司 一种基于uvm的gpio模块验证的方法、装置、设备及可读介质
TWI799201B (zh) * 2022-03-23 2023-04-11 新唐科技股份有限公司 偵測方法以及偵測裝置
CN114996184B (zh) * 2022-06-13 2024-01-30 南京观海微电子有限公司 兼容实现spi或i2c从机的接口模块及数据传输方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1176433A (zh) * 1996-09-09 1998-03-18 株式会社东芝 高速缓存清理装置以及具备该装置的计算机系统
US5778427A (en) * 1995-07-07 1998-07-07 Sun Microsystems, Inc. Method and apparatus for selecting a way of a multi-way associative cache by storing waylets in a translation structure
US6014732A (en) * 1997-10-22 2000-01-11 Hewlett-Packard Company Cache memory with reduced access time
US6122709A (en) * 1997-12-19 2000-09-19 Sun Microsystems, Inc. Cache with reduced tag information storage
US6131143A (en) * 1997-06-09 2000-10-10 Nec Corporation Multi-way associative storage type cache memory

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08500687A (ja) * 1992-08-10 1996-01-23 モノリシック・システム・テクノロジー・インコーポレイテッド ウェハ規模の集積化のためのフォルトトレラントな高速度のバス装置及びバスインタフェース
US6223255B1 (en) 1995-02-03 2001-04-24 Lucent Technologies Microprocessor with an instruction level reconfigurable n-way cache
US6006312A (en) * 1995-02-27 1999-12-21 Sun Microsystems, Inc. Cachability attributes of virtual addresses for optimizing performance of virtually and physically indexed caches in maintaining multiply aliased physical addresses
US5857214A (en) 1995-12-18 1999-01-05 Advanced Micro Devices, Inc. Microprocessor with a fixed cache size selected from a predesigned set of sizes
US5918245A (en) 1996-03-13 1999-06-29 Sun Microsystems, Inc. Microprocessor having a cache memory system using multi-level cache set prediction
US5809562A (en) * 1996-05-20 1998-09-15 Integrated Device Technology, Inc. Cache array select logic allowing cache array size to differ from physical page size
US5854943A (en) 1996-08-07 1998-12-29 Hewlett-Packard Company Speed efficient cache output selector circuitry based on tag compare and data organization
US6145054A (en) 1998-01-21 2000-11-07 Sun Microsystems, Inc. Apparatus and method for handling multiple mergeable misses in a non-blocking cache
US6081853A (en) * 1998-03-03 2000-06-27 Ip First, Llc Method for transferring burst data in a microprocessor
US6253285B1 (en) * 1998-04-16 2001-06-26 Compaq Computer Corporation Method and apparatus for minimizing dcache index match aliasing using hashing in synonym/subset processing

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778427A (en) * 1995-07-07 1998-07-07 Sun Microsystems, Inc. Method and apparatus for selecting a way of a multi-way associative cache by storing waylets in a translation structure
CN1176433A (zh) * 1996-09-09 1998-03-18 株式会社东芝 高速缓存清理装置以及具备该装置的计算机系统
US6131143A (en) * 1997-06-09 2000-10-10 Nec Corporation Multi-way associative storage type cache memory
US6014732A (en) * 1997-10-22 2000-01-11 Hewlett-Packard Company Cache memory with reduced access time
US6122709A (en) * 1997-12-19 2000-09-19 Sun Microsystems, Inc. Cache with reduced tag information storage

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7877929B2 (en) 2007-08-04 2011-02-01 Rezzorb, Llc Method and apparatus for reducing fertilizer use in agricultural operations

Also Published As

Publication number Publication date
JP2004523051A (ja) 2004-07-29
WO2002079995A1 (en) 2002-10-10
US6622208B2 (en) 2003-09-16
TW586059B (en) 2004-05-01
EP1388066A1 (en) 2004-02-11
EP1388066A4 (en) 2007-05-16
US20030046510A1 (en) 2003-03-06
WO2002079995A8 (en) 2003-01-16
CN1498369A (zh) 2004-05-19

Similar Documents

Publication Publication Date Title
CN1310156C (zh) 使用带有软高速缓存的片上系统的系统与方法
JP5960517B2 (ja) フラッシュメディアコントローラの内部のメタデータハンドリング
US7934036B2 (en) Interrupt-related circuits, systems, and processes
TWI477967B (zh) 用以實現gpu加速位址轉換之系統及方法以及圖形處理器
CN105793829B (zh) 用于集成组件互连的装置、方法和系统
KR100560761B1 (ko) 인터페이스 변환 시스템 및 그 방법
US7730248B2 (en) Interrupt morphing and configuration, circuits, systems and processes
US6948098B2 (en) Circuits and methods for debugging an embedded processor and systems using the same
KR100349787B1 (ko) 싱글칩마이크로컴퓨터
EP2546755A2 (en) Flash controller hardware architecture for flash devices
CN1550070A (zh) 用于无线系统中的时钟及电源控制的方法和设备
US20140379959A1 (en) Map recycling acceleration
BR102014006218A2 (pt) método, aparelho e sistema para a melhora dos tempos de retomada das portas raiz e dos pontos de extremidade integrados às portas raiz
TW201717029A (zh) 對於可轉換記憶體的頁面的保護容器頁面與正規頁面類型表示的選擇性檢查之多頁面檢查提示
CN102033818A (zh) 媒体缓冲和流水线式处理组件
JP2013025794A (ja) フラッシュインタフェースの有効利用
EP2818963B1 (en) Restricting clock signal delivery in a processor
US9378782B1 (en) Apparatus with write-back buffer and associated methods
JP2007179286A (ja) 記憶装置および情報処理装置
KR101101867B1 (ko) 모바일 스토리지 제어 장치
Popovic Improving the energy efficiency of a microcontroller instruction fetch using tight loop cache
e Silva Arm TrustZone: evaluating the diversity of the memory subsystem
Handbook Volume 3: Hard Processor System Technical Reference Manual

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070411

Termination date: 20100320