CN101443740A - 用于高速缓存存储器的最大驻留替换的方法和系统 - Google Patents
用于高速缓存存储器的最大驻留替换的方法和系统 Download PDFInfo
- Publication number
- CN101443740A CN101443740A CNA2007800173653A CN200780017365A CN101443740A CN 101443740 A CN101443740 A CN 101443740A CN A2007800173653 A CNA2007800173653 A CN A2007800173653A CN 200780017365 A CN200780017365 A CN 200780017365A CN 101443740 A CN101443740 A CN 101443740A
- Authority
- CN
- China
- Prior art keywords
- victim
- way
- cache
- cache memory
- fifo
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/126—Replacement control using replacement algorithms with special data handling, e.g. priority of data or instructions, handling errors or pinning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/128—Replacement control using replacement algorithms adapted to multidimensional cache systems, e.g. set-associative, multicache, multiset or multilevel
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C8/00—Arrangements for selecting an address in a digital store
- G11C8/04—Arrangements for selecting an address in a digital store using a sequential addressing device, e.g. shift register, counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0844—Multiple simultaneous or quasi-simultaneous cache accessing
- G06F12/0855—Overlapped cache accessing, e.g. pipeline
- G06F12/0859—Overlapped cache accessing, e.g. pipeline with reload from main memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明提供供在基于CDMA的产品和服务中使用的技术,其包括在标签未中分配后替换高速缓存存储器分配以便使多个组路的驻留最大化。此处,针对所述高速缓存存储器形成牺牲路的先进先出(FIFO)替换列表的步骤,其中所述FIFO替换列表的深度近似等于所述高速缓冲存储器组中的路的数目。方法和系统仅在标签未中导致标签未中分配的情况下将牺牲路放置在所述FIFO替换列表上,所述牺牲路被放置在所述FIFO替换列表的尾部处任何先前选定的牺牲路之后。通过例如以下方式阻止在所述牺牲路的先前分配未完成的情况下使用所述FIFO替换列表上的牺牲路:停止重新使用请求,直到所述牺牲路的此初始分配完成为止,或者重播重新使用请求,直到所述牺牲路的此初始分配完成为止。
Description
技术领域
所揭示的标的物涉及支持通信产品和服务的数字信号处理。更明确地说,本揭示案涉及一种用于高速缓存存储器的最大驻留替换的新颖且改进的方法和系统,其可用于手持机或其它通信系统的数字信号处理器。
背景技术
电子设备和支持性软件应用程序越来越多地涉及数字信号处理。家庭影院、计算机制图、医学成像和电信均依赖于信号处理技术。数字信号处理需要复杂但重复的算法的快速数学。许多应用程序需要实时计算,即信号是连续的时间函数,其必须经取样并转换为二进制以供数值处理。因此,处理器必须执行在样本到达时对其执行离散计算的算法。数字信号处理器或DSP的结构经优化以处置此类算法。良好的信号处理引擎的特征包括快速且灵活的算术计算单元、去往和来自计算单元的不受限制的数据流、计算单元中扩展的精度和动态范围、有效的程序排序和易于编程。
DSP技术的一项有希望的应用包括例如码分多址(CDMA)系统等通信系统,其支持用户之间经由卫星或地面链路的语音和数据通信。在题为“使用卫星或地面转发器的扩展频谱多址通信系统(SPREAD SPECTRUM MULTIPLE ACCESS COMMUNICATIONSYSTEM USING SATELLITE OR TERRESTRIAL REPEATERS)”的第4,901,307号美国专利和题为“用于在CDMA蜂窝式远程手持机系统中产生波形的系统和方法(SYSTEMAND METHOD FOR GENERATING WAVEFORMS IN A CDMA CELLULARTELEHANDSET SYSTEM)”的第5,103,459号美国专利中揭示多址通信系统中的CDMA过程使用,所述美国专利均转让给所主张标的物的受让人。
CDMA系统通常经设计以符合一个或一个以上电信(现在为串流视频)标准。一项此类第一代标准是“双模式宽带扩展频谱蜂窝式系统的TIA/EIA/IS-95终端-基站兼容性标准”,下文中称为IS-95标准。IS-95CDMA系统能够传输语音数据和包数据。可更有效传输包数据的近代标准由名为“第3代伙伴计划”(3GPP)的协会提供,且在包括第3G TS 25.211号、第3G TS 25.212号、第3G TS 25.213号和第3G TS 25.214号文献的一组文献中具体描述,公众可容易得到所述文献。3GPP标准在下文中称为W-CDMA标准。还存在视频压缩标准,例如MPEG-1、MPEG-2、MPEG-4、H.264和WMV(视窗媒体视频),以及此类无线手持机将越来越多采用的许多其它标准。
数字信号处理器(DSP)可有效用于遵守以上标准的无线手持机。明确地说,无线手持机正要求且将越来越多地要求DSP执行来自面向用户、科学的多媒体应用程序以及许多其它类型的应用程序的指令。处理器资源要求可针对例如电视广播、串流消息断续器、电子邮件(包括带有附件的消息)等应用程序以及例如串流视频(例如,视频会议)、摄影和文件(文字处理、电子数据表、呈现等)应用程序等常驻应用程序而广泛且动态地变化,所有这些应用程序均来自同一DSP。
在DSP的操作中,由于例如此类便携式和手持式应用程序的广泛使用,较低功率消耗对数据处理系统具有不断增加的重要性。许多DSP当今使用较小、较快速且较有效的存储器(有时称为高速缓冲存储器)以减少对主存储器的存取次数。与对其它内部或外部存储器的存取相比,对高速缓存存储器的存取通常消耗较少电力且导致减少的等待时间。通过存储随后在较快速且较有效的高速缓冲存储器中将再次请求的那些项目,可发生显著的功率降低和性能增加。
高速缓存存储器还向处理器提供用以在不引发与主存储器源(例如DRAM)相关联的等待状态的情况下快速取出数据的方式。使用高速缓存存储器通常改进计算机系统性能,从而使得在不要求从具有复杂总线结构的主存储器单元分隔符发生寻呼循环或物理延迟的情况下处理器可得到常用数据。
通常,高速缓存存储器经组织成“组(set)”或“路(way)”(下文中统称为“路”)。高速缓存存储器路通常包括许多高速缓存存储器条目位置,其可使用常见地址来存取。组相联高速缓冲存储器是这样一种类型的高速缓存存储器,其在指派或“映射”到主存储器源(例如DRAM)内的特定位置的高速缓冲存储器路中组织数据。当存储在所述路内的数据被来自主存储器内的另一位置的数据替代时重新映射高速缓存存储器路。此外,高速缓冲存储器路可映射到同一主存储器位置,以便帮助在高速缓冲存储器中维持与特定主存储器位置相关联的最近数据版本。
现在,高速缓存存储器通常比主存储器小,所以需要删除高速缓冲存储器路以针对并非存储在所述高速缓冲存储器中的新近存取的数据腾出空间。那些待替换的高速缓冲存储器路称为“牺牲路(victim way)”。与已位于高速缓冲存储器中持续一段时间的数据相比,施加到所述牺牲路的数据应在统计上更有可能在近期再次被存取。通常,高速缓冲存储器选择一个或一个以上有资格存储对应于给定交易的数据的高速缓冲存储器条目,且搜索这些条目以检测命中或未中。在组相联高速缓冲存储器中,两个或两个以上条目有资格基于数据地址而存储数据。可在未中时驱逐所述两个或两个以上条目中的任一者的高速缓冲存储器线。组相联高速缓冲存储器采用替换政策来选择所述两个或两个以上合格条目中的一者以供驱逐。存在多种替换政策。
两种已知类型的高速缓冲存储器替换过程是最近使用(“LRU”)和近期未用(“NRU”)高速缓冲存储器替换政策。这些高速缓冲存储器替换政策中的每一者要求对呈现给高速缓冲存储器的交易进行综合监视,以及详细了解所实施的替换政策以确定任何给定时间点处替换政策的状态。因此,对于高速缓冲存储器路的每一使用,需要更新与高速缓冲存储器路相关联的存储位。此更新在操作资源使用和能量消耗方面是昂贵的。
因此,需要一种低成本、高效率高速缓冲存储器替换过程,其实现NRU和LRU方法的基本相同性能。低成本益处包括降低高速缓冲存储器替换过程中的存储要求。而且,降低存储要求促进了在DSP操作期间改进能量使用。
LRU和NRU过程使用中的另一考虑在执行多线程处理的DSP中具有特别相关性。在此类处理器中,通过LRU和NRU高速缓冲存储器替换政策,重复需要将存储位信息从一个管线转发到下一个管线。逐个管线地转发存储位信息的成本可能过大,尤其是当针对每一管线级具有有限时间预算时。也就是说,从一个管线级到另一管线级地处置存储位信息可能在多线程操作期间索取不合需要的成本。
而且,如上文提及,处置存储位(如在LRU和NRU替换政策中所要求的)通常需要使用宽且大的总线来传达存储位信息。因为传达存储位信息的较大总线消耗功率且引入执行延迟,所以需要在高速缓冲存储器路替换政策中减少或消除此类存储位信息的传达。
因此,需要改进已知LRU和NRU高速缓冲存储器替换政策。明确地说,在多线程DSP或类似处理器的操作中存在此类需要。
进一步需要减少用于DSP或类似处理器的已知高速缓冲存储器替换过程中所存在的功率消耗和执行延迟。
因此,本质上,需要消除在DSP或类似处理器的高速缓冲存储器路替换操作期间对存储位信息的处置。
发明内容
本文中揭示提供用于数字信号处理器中高速缓存存储器的最大驻留替换的技术,所述技术改进处理器的操作和数字信号处理器指令的有效且更迅速处理两者。本发明可例如有益于多线程处理器系统,其中多个处理器线程以n路组相联方法(其中n为2或更大)共享高速缓存存储器,且更明确地说,涉及一种替换控制技术,其可在发生未中时应用。使用所揭示的标的物准许越来越稳固的软件应用程序用于个人计算机、个人数字助理、无线手持机和类似的电子装置,以及增加处理器速度和服务质量。
根据所揭示标的物的一个方面,提供一种用于在标签未中分配随后替换高速缓存存储器分配以便最大化多个组路的驻留的方法和系统。本发明包括形成高速缓存存储器的牺牲路的先进先出(FIFO)替换列表,其中FIFO替换列表的深度近似等于高速缓冲存储器组中的路的数目。所述方法和系统仅在标签未中导致标签未中分配的情况下在FIFO替换列表中放置牺牲路,所述牺牲路放置在FIFO替换列表的尾部处在任何先前选定牺牲路之后。在未完成先前对牺牲路的分配的情况下,通过例如以下方式来阻止使用FIFO替换列表上的所述牺牲路:停止重新使用请求直到对所述牺牲路的此初始分配完成为止,或重播重新使用请求直到对所述牺牲路的此初始分配完成为止。
从本文提供的描述内容中将容易明白所揭示标的物的这些和其它方面以及额外的新颖特征。此发明内容的意图并不是全面描述所主张的标的物,而是提供对标的物的某些功能性的简短概述。所属领域的技术人员在检查以下附图和具体实施方式之后将容易明白本文所提供的其它系统、方法、特征和优点。希望本描述内容内所包括的所有此类额外系统、方法、特征和优点均属于所附权利要求书的范围内。
附图说明
结合附图参看下文陈述的详细描述将更容易明白所揭示标的物的特征、性质和优点,在附图中相同参考字符始终相应地进行识别,且其中:
图1是可实施本实施例的通信系统的简化方框图;
图2说明用于实行本实施例的教示的DSP结构;
图3展示可在采用本发明的教示的系统中操作的控制单元(CU)的方框图;
图4呈现作为可采用本发明的高速缓冲存储器路替换过程的示范性电路的数据单元(DU)的方框图;
图5详细说明用于教示在例如在图3中所呈现的指令单元(IU)中使用本发明的流程图的一个实施方案;以及
图6详细说明当前所揭示的标的物在如图3所说明的数据单元(DU)中的另一使用的流程图的实施方案。
具体实施方式
如本文呈现的用于高速缓存存储器的最大驻留替换的方法和系统的所揭示标的物可用于各种各样的数字信号处理应用,其中包括涉及多线程处理的应用。一种此类应用出现在电信中,且明确地说,出现在采用一个或一个以上DSP电路的无线手持机中。因而,以下附图描述其中可使用本教示的电信DSP。然而,请记住,本文描述的实施方案仅提供可应用所揭示标的物的几乎无数应用中的一者。
出于解释可如何使用此类无线手持机的目的,图1提供可实施所揭示数据处理方法和系统的所呈现实施例的通信系统10的简化方框图。在传输器单元12处,通常以区块形式将数据从数据源14传送到传输(TX)数据处理器16,其对所述数据进行格式化、编码和处理以产生一个或一个以上模拟信号。接着将所述模拟信号提供到传输器(TMTR)18,其对基带信号进行调制、过滤、放大和上变频转换以产生经调制信号。接着,经由天线20将所述经调制信号传输到一个或一个以上接收器单元。
在接收器单元22处,由天线24接收所传输的信号并将其提供到接收器(RCVR)26。在接收器26内,对所接收的信号进行放大、过滤、下变频转换、解调和数字化以产生同相(I)和(Q)样本。接着,由接收(RX)数据处理器28对所述样本进行解码和处理以恢复所传输的数据。以与在传输器单元12处执行的编码和处理互补的方式执行接收器单元22处的解码和处理。接着,将所恢复的数据提供到数据汇30。
上文描述的信号处理支持在一个方向上传输语音、视频、包数据、消息传递和其它类型的通信。双向通信系统支持双路数据传输。然而,出于简单起见未在图1中展示用于另一方向的信号处理。通信系统10可为码分多址(CDMA)系统、时分多址(TDMA)通信系统(例如,GSM系统)、频分多址(FDMA)通信系统或支持用户之间经由地面链路的语音和数据通信的其它多址通信系统。在具体实施例中,通信系统10是符合W-CDMA标准的CDMA系统。
图2说明可用作图1的传输数据处理器16和接收数据处理器28的DSP 40结构。再次强调,DSP 40结构仅表示可有效使用本文所呈现的教示和概念的大量可能数字信号处理器实施例中的一个实施例。DSP 40表示多线程处理器,其中线程T0:T5含有多组指令。通过指令单元(IU)42将指令排列成指令队列(IQ)44。IQ 44中的指令准备好发布到处理器管线46中。解码与发布逻辑电路48可从指令队列44中选择单个线程(例如,线程T0)。
IU42中的IQ 44保持对指令流的滑动缓冲。DSP 40所支持的六个线程T0:T5中的每一者具有单独的IQ 44,其中每一条目可存储一个VLIW包或多达四条个别指令。所有线程共享解码与发布电路48逻辑以用于每次解码和发布一VLIW包或多达两个超标量指令,以及用于针对每一管线SLOT0:SLOT3产生控制总线和操作数。所有线程还共享PLC 50以用于解决异常情况和检测管线停止条件,例如线程启用/停用、重播条件、维持程序流程等。
在操作中,读取选定线程的通用寄存器堆(GRF)52和控制寄存器堆(CRF)54,且将读取数据发送到用于SLOT0:SLOT3的执行数据路径。在此实例中,SLOT0:SLOT3提供本实施例中所采用的包分组组合。来自SLOT0:SLOT3的输出返回来自DSP 40的操作的结果。
本文所揭示的标的物处理单个线程的高速缓冲存储器替换政策。单个线程看到具有所有寄存器和指令可用的完整单处理器DSP 40。通过一致共享存储器设施,此线程能够与其它线程通信和同步。这些其它线程正在同一处理器上还是在另一处理器上运行在很大程度上对于用户级别的软件来说是透明的。
转向图3,用于DSP 40的本微结构60包括控制单元(CU)62,其执行对处理器管线46的许多控制功能。CU 62调度来自IU 42的线程与请求混合16位和32位指令。此外,CU 62调度指令并将其发布给三个执行单元,即移位类型单元(SU)64、乘法类型单元(MU)66和加载/存储单元(DU)68。CU 62还执行超标量相依性检查。总线接口单元(BIU)70将IU 42和DU 68介接到系统总线(未图示)。
SLOT0和SLOT1管线在DU68中,SLOT2在MU 66中,且SLOT3在SU 64中。CU 62向管线SLOT0:SLOT3提供源操作数和控制总线,且处置GRF 52和CRF 54文件更新。CU 62接受例如中断和复位等外部输入,且支持仿真单元(EU)72。CU 62还处置因在地址翻译期间发生的保护侵犯引起的异常情况。在微结构60的一个实施例中,可每次并行发布混合的16和32位指令多达四条。然而,可在其它实施例中实施16位、32位和其它长度指令的许多不同变型,所有这些均属于所揭示标的物的范围内。此外,微结构60还可支持针对每个循环从CU 62移动两个64位双字。
使用微结构60的DSP 40特别支持以下类别的应用:(1)通信信号处理(例如,调制解调器);(2)视频处理(例如,H.264格式);(3)图像处理;(4)音频处理;(5)3D图像前端软件;以及(6)支持控制代码、协议堆栈、RTOS等。如此,DSP 40发布VLIW指令包,以及个别超标量发布指令。个别指令的发布宽度可在从每发布时隙一个指令到最大VLIW包的范围内。作为实例,DSP 40可每发布时隙在一VLIW包中发布多达四个指令。而且,DSP 40可使用超标量发布来发布一个或两个指令。
图4呈现代表性数据单元DU 68区块分割,其中可应用所揭示的标的物。DU 68包括地址产生单元AGU 80,其进一步包括AGU0 81和AGU1 83以接收来自CU 62的输入。此处所揭示的标的物具有对DU 68的操作的主要应用。加载/存储控制单元LCU 82也与CU 62通信,且向AGU 80和ALU 84提供控制信号,以及与数据高速缓冲存储器单元DCU 86通信。ALU 84还接收来自AGU 80和CU 62的输入。来自AGU 80的输出去往DCU 86。DCU 86与存储器管理单元(“MMU”)87和CU 62通信。ALU 84包括ALU0 85和ALU1 89,每一时隙使用一个,且含有数据路径以在DU 68内执行算术/转移/比较(ATC)操作。
DCU 86包括SRAM状态阵列电路88、存储对准器电路90、CAM标签阵列92、SRAM数据阵列94,和加载对准器电路96。为了进一步解释DU 68的操作(其中所主张的标的物可操作),现参考其中根据以下描述的若干部分执行的基本功能。明确地说,DU 68执行来自ALU 84的加载类型、存储类型和32位指令。
DU 68在DE管线级中每循环从CU 60接收多达两个经解码指令,其中包括立即操作数。在RF管线级中,DU 68从恰当的线程特定寄存器接收通用寄存器(GPR)和/或控制寄存器(CR)源操作数。从CU 60中的GPR寄存器堆接收GPR操作数。在EX1管线级中,DU 68产生加载或存储存储器指令的有效地址(EA)。将EA呈现给MMU 87,其执行虚拟到物理地址翻译和页级别准许检查,且提供页级别属性。对于对可高速缓存位置的存取,DU 68用物理地址在EX2管线级中查找数据高速缓冲存储器标签。如果存取命中,那么DU 68在EX3管线级中执行数据阵列存取。
对于可高速缓存的加载,通过恰当的存取大小对准从高速缓冲存储器读出的数据,如指定那样扩展零/符号,并在WB管线级中驱动到CU 60以写入到指令指定的GPR中。对于可高速缓存的存储,从CU 60中的线程特定寄存器中读出待存储的数据。
DU 68还执行高速缓冲存储器指令以用于管理DCU 86。所述指令允许锁定和解锁特定高速缓冲存储器线、使其无效以及分配到GPR指定的高速缓冲存储器线。还存在用以全局地使高速缓冲存储器无效的指令。类似于加载和存储指令,将这些指令管线化。对于到未中数据高速缓冲存储器的可高速缓存位置的加载和存储,以及对于不可高速缓存的存取,DU 68向BIU 70提出请求。不可高速缓存的加载提出读取请求。存储命中、未中和不可高速缓存的存储提出读取/写入请求。DU 68追踪对BIU 70的未决读取和线填充请求。在未决加载请求完成之前,DU 68还允许在一个或一个以上线程被阻挡时由其它线程进行的存取。也就是说,DU 68支持往来于DSP 40核心处理器的读取/写入请求。因此,BIU 70提供到总线的双向接口以用于这些操作。
存在两种类型的存储。第一,存在直接存储到高速缓冲存储器的存储,即“回写”存储。而且,存在可存储在高速缓冲存储器中的存储,但其还将交易发送到总线。“直写(write-through)”和“未经高速缓存”存储两者均将数据发送到总线以及高速缓冲存储器。存储命中将提出对直写存储的读取/写入请求。在回写存储情况的存储未中的情况下,在总线上将出现读取请求。如果请求是直写,那么数据直接去往总线且不写入到高速缓冲存储器。
所揭示的标的物为数字信号处理(例如在DU 68中发生的处理)期间的高速缓冲存储器替换操作提供“先进先出”或“FIFO”列表过程。在分析当前揭示的FIFO高速缓冲存储器替换过程的有效性中,存在较有效且较不麻烦的高速缓冲存储器替换过程。尽管没有用以转移和追踪存储位的位置的过程,但仍然是这样的情况。
所揭示的过程的技术优点是避免了需要追踪最近已使用哪个高速缓冲存储器线。本过程未强加任何此类要求。通过本FIFO高速缓冲存储器替换过程,只需要确定可用高速缓冲存储器资源的存在。不要求知道和维持对到高速缓存存储器的存取路径的运行记录。所以,对于每一高速缓冲存储器加载,当使用NRU或LRU过程时,必须发生计算以确定待采用的高速缓冲存储器路。
所揭示的标的物在发生未中的情况下更新高速缓冲存储器路。因此,当发生许多未中时,所揭示标的物的过程将连续操作以识别待在下一存储请求的情况下使用的高速缓冲存储器路。另一方面,如果未发生高速缓冲存储器未中,那么本文所揭示的过程不会如使用LRU或NRU过程那样连续更新。而是,本FIFO高速缓冲存储器替换过程进行等待,直到发生下一高速缓冲存储器未中为止。也就是说,NRU和LRU过程追踪发生的高速缓冲存储器命中,而本文所揭示的FIFO高速缓冲存储器替换过程追踪发生的高速缓冲存储器未中。
通过所揭示的标的物,只有当发生未中时,才会有高速缓冲存储器路要使用。在待替换高速缓冲存储器的那点处,FIFO高速缓冲存储器替换过程基于下一高速缓冲存储器路以根据已从列表替换的高速缓冲存储器路进行替换。因此,如果任何路均未被替换,那么待替换的高速缓冲存储器路的FIFO列表将不改变。当发生未中时,最老的未中高速缓冲存储器是替换过程的最小值,因为其最早被替换。因此,所述路在FIFO替换列表上越老,将从FIFO替换列表中移除所述高速缓冲存储器路的可能性也就越高。
本发明避免需要FIFO替换过程的反馈路径,所以面积要求以两种方式变得较小。首先,所揭示的标的物不要求任何存储位。其次,所述过程更具能量效率,因为不需要每次高速缓冲存储器读取均读取存储位。此外,不需要使用较大总线电线来传达存储位信息。
通过所揭示的标的物,当请求查找接收到高速缓冲存储器标签未中时,必须替换所述组路中的一者。经选择以进行替换的高速缓冲存储器路称为牺牲路,因为在某些情况下,必须从高速缓冲存储器移除牺牲路的高速缓冲存储器内容以针对标签未中分配腾出空间。当高速缓冲存储器中的内容出于一个原因或另一原因而不同于DSP40主存储器中的内容时,产生这些情况。举例来说,如果线中的存储发生时,内容可能改变,进而要求需要替换。
为了最大化每一路在高速缓冲存储器中保持的时间,在高速缓冲存储器未中随后,将牺牲路放置在基于组的FIFO列表的尾部。替换FIFO列表的深度等于高速缓冲存储器组中的路的数目,进而最大化再次驱逐同一路之前的未中分配的时间或驻留。对同一组的后续标签未中将同样产生牺牲路且被放置在所述组FIFO的尾部。每一新的牺牲迫使早期牺牲朝向替换FIFO列表头部。当同一组牺牲的数目等于高速缓冲存储器路的数目时,在下一标签未中时重新使用牺牲路。
如本文所揭示的FIFO替换政策的实施方案满足两个规则。第一,实施方案必须基于每一组中的路的数目而最大化高速缓冲存储器驻留。这是通过仅当标签未中导致分配时才在组FIFO列表上放置牺牲路来完成。如果已经针对早期标签未中存在未决分配请求,那么当前标签未中不会更新FIFO列表。任何实施方案必须实行的第二规则涉及高速缓冲存储器一致性。
在将牺牲路放置在FIFO列表尾部上的情形中,有可能的是同一路将达到头部且在最初分配完成之前被重新使用。如果牺牲路重新使用未经校正,那么此冒险可能会导致标签与数据高速缓冲存储器之间的不一致性。存在对此冒险的若干可能解决方案,其中包括停止或重播重新使用请求或在将重新使用路放置在FIFO列表尾部之后第二次读取FIFO列表头部。
在使用具有高度等待时间不容性的软件应用程序的处理环境中,所揭示的标的物减少处理时间且避免追踪存储位位置。此类处理环境可包括呈现串流视频和数据应用程序的环境,以及其中在按压无线手持机键区后产生立即音调反馈(例如,从.wav文件表播放数据)的环境。
在串流视频的另一实例中,可在无线手持机屏幕上呈现每秒20+个图像帧的流动。在图像帧中,部分流动帧含有有用的信息,而其它部分的帧含有冗余信息。确定信息是冗余信息还是新信息的能力和计时考虑对于有效使用处理资源来说是重要的。
通过此介绍,将在图5和图6中描述两种实施方案。这些实施方案可用于数字信号处理器,例如图5的IU 42过程100和图6的DU 68过程102中的DSP 40。因此,首先考虑IU 42过程100,其中IU 42运行标签查找(步骤104),且可能发生标签未中(步骤106)。在此情况下,将请求地址与存储在未决请求缓冲器(ORB)中的有效请求进行比较(步骤108)。如果查找地址是唯一的(步骤110),那么将所述请求视为初级未中(PM)(步骤112)。将PM地址发送到系统存储器以供分配(步骤114)且读取替换FIFO列表以获得牺牲路(步骤116)。如果牺牲路已经用于此组地址,先前已通过先前请求将所述地址发送到系统存储器(步骤118),那么将所述请求视为次级未中(SM)(步骤120)。在此情况下,不读取替换FIFO列表且最大化高速缓冲存储器驻留(步骤122)。
从询问110,“是”路径去往步骤112,其中确定请求是PM或初级未中。如果请求是初级未中,那么在步骤114处将牺牲路存储在FIFO缓冲器中以供分配。接着,在步骤116处,读取FIFO列表以获得下一牺牲路。从步骤116,过程流程100去往步骤126和130两者。在步骤126处,将FIFO列表头部放置在列表尾部,且在步骤128处,将牺牲路存储在最后路缓冲器中。在步骤130处,过程流程100确定是否存在牺牲路重新使用冒险。这包括将当前/即将到来的牺牲路与其它最后路缓冲器进行比较(步骤132)。如果牺牲路匹配且组地址匹配,那么存在重新使用冒险。这意味着高速缓冲存储器替换算法正试图使用已经分配的高速缓冲存储器路。而且,过程(步骤136)将即将到来的PM的组地址与其它线程组地址进行比较。如果响应于步骤132在询问134处或响应于步骤136在步骤138处检测到命中,那么过程流程继续到OR步骤140。OR步骤140向步骤142提供输入,其中在步骤142处重播当前/即将到来的线程。如果重播的线程是PM,那么过程流程100继续到步骤146。否则,过程流程100确定(步骤120)请求是次级未中(SM)。过程流程100读取FIFO列表(步骤146),使得(步骤148)从FIFO列表头部检索新的牺牲路。
因此,当存在重新使用冒险时,过程流程100重播当前线程。在下一时间处,其将回来且其将再次未中。过程流程100于是将确定FIFO正指向的当前路已经在使用。如果过程流程100再次返回同一路,那么存在重新使用冒险。当所述过程再次从FIFO列表提供同一路时,那么未决请求将确定所返回的路已经被涉及且线程将被重播。线程将回来且其将再次重播。因此,FIFO列表提供其曾在上一循环中给出的任何内容递增一。相同过程持续进行,直到存在未显示重新使用冒险的牺牲路为止。未显示重新使用冒险的第一牺牲路将是过程流程100使用的路。
通过将替换FIFO列表存取管线化排列在确定牺牲路分配后面,IU 42可立即在同一时钟中将牺牲路从FIFO列表的头部移动到尾部。这允许IU 42支持在替换FIFO列表中的背对背多线程存取而无需重播。
如果组地址和牺牲路命中以及其两者为PM请求(步骤140),那么重播较新或即将到来的线程(步骤142)。当线程被重播且再次被确定为PM时(步骤144),读取替换FIFO列表(步骤146)且从头部检索新的牺牲路(步骤148)。
IU将替换FIFO列表实施为简单的4位计数器。每一PM读取替换组计数器且使组计数器递增一。组计数器总是在PM时递增,从而在重播命中冒险的线程之前清除重新使用冒险。
图6详细描述应用于DU 68的本发明的DU过程102中的步骤。当DU 68运行请求查找时(步骤150),同时读取标签、状态和替换FIFO列表(步骤152)。使用命中和状态向量以确定初级或次级命中(步骤154)。由于在状态/FIFO列表读取与状态/FIFO列表写入之间存在延迟,所以将请求组地址进行管线化排列以与较新的线程进行比较(步骤156)。如果在两个请求之间发生组地址命中(步骤158),那么可重播较新的线程(步骤160)。因此,如果检测到标签未中(步骤162),即所述状态未保留,那么将组地址与较老的线程组地址进行比较(步骤164),以确定是否必须重播较新/即将到来的线程(步骤166)。否则,不读取FIFO列表。为了检测牺牲路重新使用冒险,DU将牺牲路(即,FIFO列表头部处的路)与状态向量进行比较(步骤168)。如果牺牲路命中同一路处的保留状态(步骤170),那么先前请求采用所述高速缓冲存储器路以进行保留且检测到牺牲路重新使用(步骤170)。否则,不读取FIFO列表。如果组地址是唯一的且不存在牺牲路重新使用冒险(步骤174),那么请求是真实的PM且被发送到系统存储器以供分配(步骤176)。否则,不读取FIFO列表。
通过本实施例,DU 68可更新替换FIFO列表且维持最大高速缓冲存储器驻留和高速缓冲存储器一致性。然而,其它实施方案可能不支持替换FIFO列表中的背对背多线程存取,如上文描述。这可在状态和替换旁路的添加用以维持准确的状态和FIFO列表信息直到其被写回到其组为止的情况下发生。
DU 68(如IU42)也将替换FIFO列表实施为简单的4位计数器。每一查找读取替换组计数器且接着确定请求是否为PM。在确定PM随后,使替换计数器递增一并将其连同所更新的状态信息一起写回到组计数器。将在重新使用冒险时使组计数器递增。当重播牺牲路重新使用线程时,将在查找时检索新的计数且将清除冒险。
因此,所揭示的标的物提供一种用于在高速缓冲存储器标签未中的情况下替换高速缓冲存储器组的多个组路中的一者的方法。本发明包括以下步骤:在高速缓冲存储器未中随后,通过将牺牲路放置在高速缓冲存储器组FIFO列表的尾部上来选择牺牲路作为待替换的高速缓冲存储器路,其中FIFO的深度近似等于高速缓冲存储器组中的路的数目。接下来,所述过程在高速缓冲存储器组FIFO列表的末端处放置对高速缓冲存储器组的后续高速缓冲存储器标签未中。所述过程接着涉及在高速缓冲存储器组的牺牲路的数目等于高速缓冲存储器组路的数目的情况下在下一高速缓冲存储器标签未中时重新使用牺牲路。阻止重新使用牺牲路,直到所述牺牲路的初始分配完成为止。这避免了高速缓冲存储器标签与高速缓冲存储器组之间的不一致性。此外,所述过程用以下方式阻止重新使用牺牲路,直到所述牺牲路的初始分配完成为止:停止重新使用请求,直到牺牲路的此初始分配完成为止。所述过程还通过以下方式阻止牺牲路的重新使用,直到所述牺牲路的初始分配完成为止:重播重新使用请求,直到所述牺牲路的此初始分配完成为止。通过执行此过程和大致类似于此的过程,所揭示的主题提供有效的高速缓冲存储器路替换政策以及实施电路,其避免了已知LRU和NRU算法的现有限制。
本文所描述的处理特征和功能可以各种方式实施。举例来说,不仅DSP 40可执行上述操作,而且本实施例可在专用集成电路(ASIC)、微控制器、微处理器或经设计以执行本文所描述的功能的其它电子电路中实施。因此,提供先前对优选实施例的描述是为了使得所属领域的技术人员能够制作或使用所主张的标的物。所属领域的技术人员将容易明白对这些实施例的各种修改,且本文所界定的一般原理可应用于其它实施例,而无需使用创新的能力。因此,不希望所主张的标的物限于本文所展示的实施例,而是其应符合与本文所揭示的原理和新颖特征一致的最宽范围。
Claims (29)
1.一种用于在高速缓冲存储器标签未中的情况下替换高速缓冲存储器组的多个组路中的一者的方法,其包含以下步骤:
根据所述高速缓冲存储器路在高速缓冲存储器路的FIFO列表上的位置来选择牺牲路作为所述待替换的高速缓冲存储器路以供在数字信号处理器的操作中使用;
在所述高速缓冲存储器组FIFO列表的末端处放置所述高速缓冲存储器组的后续高速缓冲存储器标签未中,从而在下一高速缓冲存储器标签未中时重新使用牺牲路;
阻止牺牲路的重新使用,直到所述牺牲路的初始分配避免所述高速缓冲存储器标签与所述高速缓冲存储器组之间的不一致性为止;
通过以下方式阻止牺牲路的重新使用直到所述牺牲路的初始分配完成为止:停止对重新使用请求的响应,直到所述牺牲路的此初始分配完成为止;
通过以下方式阻止牺牲路的重新使用直到所述牺牲路的初始分配完成为止:重播重新使用请求,直到所述牺牲路的此初始分配完成为止。
2.根据权利要求1所述的方法,其中所述选择步骤进一步包含以下步骤:通过在所述高速缓冲存储器未中后将牺牲路放置在高速缓冲存储器组FIFO列表的尾部上来选择所述牺牲路作为所述待替换的高速缓冲存储器路,且其中所述FIFO的深度近似等于所述高速缓冲存储器组中的路的数目。
3.根据权利要求1所述的方法,其进一步包含以下步骤:在高速缓冲存储器标签未中的情况下与数字信号处理器数据单元指令的执行结合而替换高速缓冲存储器组的多个组路中的一者。
4.根据权利要求1所述的方法,其进一步包含以下步骤:在高速缓冲存储器标签未中的情况下与数字信号处理器指令单元指令的执行结合而替换高速缓冲存储器组的多个组路中的一者。
5.根据权利要求4所述的方法,在牺牲路重新使用冒险的情况下,其进一步包含以下步骤:
将当前/即将到来的初级未中牺牲路与所述FIFO列表中的其它路进行比较;
将所述即将到来的初级未中的组地址与其它组地址进行比较;以及
响应于所述比较步骤,重播所述当前/即将到来的线程,直到出现免受重新使用冒险的牺牲路为止。
6.根据权利要求1所述的方法,其进一步包含以下步骤:将最近使用的牺牲路添加到所述FIFO列表的尾部。
7.根据权利要求1所述的方法,其进一步包含以下步骤:在多线程数字信号处理器中替换所述牺牲路。
8.根据权利要求1所述的方法,其进一步包含以下步骤:在不要求使用存储位记录所使用的牺牲路的情况下执行所述替换步骤。
9.根据权利要求1所述的方法,其进一步包含以下步骤:仅在高速缓冲存储器路未中的情况下递增所述FIFO列表。
10.一种用于与数字信号处理器结合操作的高速缓冲存储器路替换电路,所述高速缓冲存储器路替换电路用于在高速缓冲存储器标签未中的情况下替换高速缓冲存储器组的多个组路中的一者且包含:
牺牲路选择电路,其用于根据所述高速缓冲存储器路在高速缓冲存储器路的FIFO列表上的位置来选择牺牲路作为所述待替换的高速缓冲存储器路以供在数字信号处理器的操作中使用;
FIFO列表填充电路,其用于在所述高速缓冲存储器组FIFO列表的末端处放置所述高速缓冲存储器组的后续高速缓冲存储器标签未中,从而在下一高速缓冲存储器标签未中时重新使用牺牲路;
高速缓冲存储器路重新使用冒险检测电路,其用于阻止牺牲路的重新使用,直到所述牺牲路的初始分配避免所述高速缓冲存储器标签与所述高速缓冲存储器组之间的不一致性为止,所述高速缓冲存储器路重新使用冒险检测电路进一步用于通过以下方式阻止牺牲路的重新使用直到所述牺牲路的初始分配完成为止:停止对重新使用请求的响应,直到所述牺牲路的此初始分配完成为止,且通过以下方式阻止牺牲路的重新使用直到所述牺牲路的初始分配完成为止:重播重新使用请求,直到所述牺牲路的此初始分配完成为止。
11.根据权利要求10所述的高速缓冲存储器路替换电路,其进一步包含牺牲路选择电路,用于通过在所述高速缓冲存储器未中后将牺牲路放置在高速缓冲存储器组FIFO列表的尾部上来选择所述牺牲路作为所述待替换的高速缓冲存储器路,且其中所述FIFO的深度近似等于所述高速缓冲存储器组中的路的数目。
12.根据权利要求10所述的高速缓冲存储器路替换电路,其进一步包含数据单元电路,用于在高速缓冲存储器标签未中的情况下与数字信号处理器数据单元指令的执行结合而替换高速缓冲存储器组的多个组路中的一者。
13.根据权利要求10所述的高速缓冲存储器路替换电路,其进一步包含指令单元电路,用于在高速缓冲存储器标签未中的情况下与数字信号处理器指令单元指令的执行结合而替换高速缓冲存储器组的多个组路中的一者。
14.根据权利要求10所述的高速缓冲存储器路替换电路,其进一步包含:
比较电路,用于将当前/即将到来的初级未中牺牲路与所述FIFO列表中的其它路进行比较,且将所述即将到来的初级未中的组地址与其它组地址进行比较;以及
高速缓冲存储器路重播电路,用于响应于所述比较步骤重播所述当前/即将到来的线程,直到出现免受重新使用冒险的牺牲路为止。
15.根据权利要求10所述的高速缓冲存储器路替换电路,其进一步包含FIFO列表电路,用于将最近使用的牺牲路添加到所述FIFO列表的尾部。
16.根据权利要求10所述的高速缓冲存储器路替换电路,其进一步包含多线程数字信号处理电路,用于在多线程数字信号处理器中替换所述牺牲路。
17.根据权利要求10所述的高速缓冲存储器路替换电路,其进一步包含替换电路,用于准许在不要求使用存储位记录所使用的牺牲路的情况下执行所述替换步骤。
18.根据权利要求10所述的高速缓冲存储器路替换电路,其进一步包含递增电路,用于仅在高速缓冲存储器路未中的情况下递增所述FIFO列表。
19.一种数字信号处理器,其包含用于在高速缓冲存储器标签未中的情况下替换高速缓冲存储器组的多个组路中的一者的装置,所述数字信号处理器包含:
用于根据所述高速缓冲存储器路在高速缓冲存储器路的FIFO列表上的位置来选择牺牲路作为所述待替换的高速缓冲存储器路以供在数字信号处理器的操作中使用的装置;
用于在所述高速缓冲存储器组FIFO列表的末端处放置所述高速缓冲存储器组的后续高速缓冲存储器标签未中从而在下一高速缓冲存储器标签未中时重新使用牺牲路的装置;
用于阻止牺牲路的重新使用直到所述牺牲路的初始分配避免所述高速缓冲存储器标签与所述高速缓冲存储器组之间的不一致性为止的装置;
用于通过停止对重新使用请求的响应直到所述牺牲路的此初始分配完成为止来阻止牺牲路的重新使用直到所述牺牲路的初始分配完成为止的装置;以及
用于通过重播重新使用请求直到所述牺牲路的此初始分配完成为止来阻止牺牲路的重新使用直到所述牺牲路的初始分配完成为止的装置。
20.根据权利要求19所述的数字信号处理器,其进一步包含用于通过在所述高速缓冲存储器未中后将牺牲路放置在高速缓冲存储器组FIFO列表的尾部上来选择所述牺牲路作为所述待替换的高速缓冲存储器路的装置,且其中所述FIFO的深度近似等于所述高速缓冲存储器组中的路的数目。
21.根据权利要求19所述的数字信号处理器,其进一步包含用于在高速缓冲存储器标签未中的情况下与数字信号处理器数据单元指令的执行结合而替换高速缓冲存储器组的多个组路中的一者的装置。
22.根据权利要求19所述的数字信号处理器,其进一步包含用于在高速缓冲存储器标签未中的情况下与数字信号处理器指令单元指令的执行结合而替换高速缓冲存储器组的多个组路中的一者的装置。
23.根据权利要求22所述的数字信号处理器,其进一步包含:
用于将当前/即将到来的初级未中牺牲路与所述FIFO列表中的其它路进行比较的装置;
用于将所述即将到来的初级未中的组地址与其它组地址进行比较的装置;以及
用于响应于所述比较步骤而重播所述当前/即将到来的线程直到出现免受重新使用冒险的牺牲路为止的装置。
24.根据权利要求19所述的数字信号处理器,其进一步包含用于将最近使用的牺牲路添加到所述FIFO列表的尾部的装置。
25.根据权利要求19所述的数字信号处理器,其进一步包含用于在多线程数字信号处理器中替换所述牺牲路的装置。
26.根据权利要求19所述的数字信号处理器,其进一步包含用于在不要求使用存储位记录所使用的牺牲路的情况下执行所述替换步骤的装置。
27.根据权利要求19所述的数字信号处理器,其进一步包含用于仅在高速缓冲存储器路未中的情况下递增所述FIFO列表的装置。
28.一种其中包含有计算机可读程序代码装置的计算机可用媒体,所述代码装置用于处理数字信号处理器上的指令以用于在高速缓冲存储器标签未中的情况下替换高速缓冲存储器组的多个组路中的一者,所述计算机可读媒体包含:
用于根据所述高速缓冲存储器路在高速缓冲存储器路的FIFO列表上的位置来选择牺牲路作为所述待替换的高速缓冲存储器路以供在数字信号处理器的操作中使用的计算机可读程序代码装置;
用于在所述高速缓冲存储器组FIFO列表的末端处放置所述高速缓冲存储器组的后续高速缓冲存储器标签未中从而在下一高速缓冲存储器标签未中时重新使用牺牲路的计算机可读程序代码装置;
用于阻止牺牲路的重新使用直到所述牺牲路的初始分配避免所述高速缓冲存储器标签与所述高速缓冲存储器组之间的不一致性为止的计算机可读程序代码装置;
用于通过停止对重新使用请求的响应直到所述牺牲路的此初始分配完成为止来阻止牺牲路的重新使用直到所述牺牲路的初始分配完成为止的计算机可读程序代码装置;
用于通过重播重新使用请求直到所述牺牲路的此初始分配完成为止来阻止牺牲路的重新使用直到所述牺牲路的初始分配完成为止的计算机可读程序代码装置。
29.根据权利要求28所述的计算机可用媒体,其进一步包含用于通过在所述高速缓冲存储器未中后将牺牲路放置在高速缓冲存储器组FIFO列表的尾部上来选择所述牺牲路作为所述待替换的高速缓冲存储器路的计算机可读程序代码装置,且其中所述FIFO的深度近似等于所述高速缓冲存储器组中的路的数目。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/437,501 | 2006-05-17 | ||
US11/437,501 US7673102B2 (en) | 2006-05-17 | 2006-05-17 | Method and system for maximum residency replacement of cache memory |
PCT/US2007/069188 WO2007137141A2 (en) | 2006-05-17 | 2007-05-17 | Method and system for maximum residency replacement of cache memory |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101443740A true CN101443740A (zh) | 2009-05-27 |
CN101443740B CN101443740B (zh) | 2012-12-05 |
Family
ID=38659396
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800173653A Expired - Fee Related CN101443740B (zh) | 2006-05-17 | 2007-05-17 | 用于高速缓存存储器的最大驻留替换的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7673102B2 (zh) |
EP (1) | EP2035937A2 (zh) |
JP (2) | JP5080564B2 (zh) |
KR (1) | KR101041647B1 (zh) |
CN (1) | CN101443740B (zh) |
WO (1) | WO2007137141A2 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521162A (zh) * | 2011-11-30 | 2012-06-27 | 华为技术有限公司 | 用于缓存数据处理的方法和装置 |
CN103218315A (zh) * | 2012-01-20 | 2013-07-24 | 国际商业机器公司 | 基于时间组记录确定高速缓存组替换顺序的方法和系统 |
CN104011692A (zh) * | 2011-12-26 | 2014-08-27 | 瑞萨电子株式会社 | 数据处理装置 |
CN107924309A (zh) * | 2015-07-30 | 2018-04-17 | 华为技术有限公司 | 用于可变通道架构的系统和方法 |
CN109074319A (zh) * | 2016-04-08 | 2018-12-21 | 高通股份有限公司 | 高速缓存中的分配的选择性绕过 |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7600098B1 (en) * | 2006-09-29 | 2009-10-06 | Sun Microsystems, Inc. | Method and system for efficient implementation of very large store buffer |
US7975107B2 (en) * | 2007-06-22 | 2011-07-05 | Microsoft Corporation | Processor cache management with software input via an intermediary |
WO2010039142A1 (en) * | 2008-10-02 | 2010-04-08 | Hewlett-Packard Development Company, L.P. | Cache controller and method of operation |
US8249099B2 (en) * | 2009-08-27 | 2012-08-21 | Texas Instruments Incorporated | External memory data management with data regrouping and channel look ahead |
US8495299B2 (en) * | 2009-11-16 | 2013-07-23 | Microsoft Corporation | Non-blocking data transfer via memory cache manipulation |
US8849345B2 (en) * | 2011-09-29 | 2014-09-30 | Samsung Electro-Mechanics Co., Ltd. | Apparatus and method for super high-speed wireless communications |
US9720847B2 (en) | 2013-07-17 | 2017-08-01 | Nxp Usa, Inc. | Least recently used (LRU) cache replacement implementation using a FIFO storing indications of whether a way of the cache was most recently accessed |
US9418019B2 (en) * | 2013-12-31 | 2016-08-16 | Samsung Electronics Co., Ltd. | Cache replacement policy methods and systems |
CN106383792B (zh) * | 2016-09-20 | 2019-07-12 | 北京工业大学 | 一种基于缺失感知的异构多核缓存替换方法 |
CN109669881B (zh) * | 2018-12-11 | 2023-04-14 | 中国航空工业集团公司西安航空计算技术研究所 | 一种基于Cache空间预约算法的计算方法 |
US11983538B2 (en) * | 2022-04-18 | 2024-05-14 | Cadence Design Systems, Inc. | Load-store unit dual tags and replays |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU523670B2 (en) | 1977-12-08 | 1982-08-12 | Honeywell Information Systems Incorp. | Cache memory location selection mechanism |
US4901307A (en) * | 1986-10-17 | 1990-02-13 | Qualcomm, Inc. | Spread spectrum multiple access communication system using satellite or terrestrial repeaters |
US5450564A (en) * | 1990-05-04 | 1995-09-12 | Unisys Corporation | Method and apparatus for cache memory access with separate fetch and store queues |
US5103459B1 (en) * | 1990-06-25 | 1999-07-06 | Qualcomm Inc | System and method for generating signal waveforms in a cdma cellular telephone system |
JPH0683712A (ja) * | 1992-09-03 | 1994-03-25 | Nec Ic Microcomput Syst Ltd | マイクロプロセッサ |
JPH06149673A (ja) * | 1992-11-12 | 1994-05-31 | Kubota Corp | キャッシュ制御方式 |
US6282617B1 (en) * | 1999-10-01 | 2001-08-28 | Sun Microsystems, Inc. | Multiple variable cache replacement policy |
US6694408B1 (en) * | 2000-05-01 | 2004-02-17 | Javier Villagomez | Scalable replacement method and system in a cache memory |
US6772288B1 (en) * | 2000-09-06 | 2004-08-03 | Stmicroelectronics, Inc. | Extended cache memory system and method for caching data including changing a state field value in an extent record |
WO2002099652A1 (en) * | 2001-06-06 | 2002-12-12 | Sun Microsystems, Inc. | Method and apparatus for facilitating flow control during accesses to cache memory |
US6892285B1 (en) * | 2002-04-30 | 2005-05-10 | Cisco Technology, Inc. | System and method for operating a packet buffer |
US20040153611A1 (en) * | 2003-02-04 | 2004-08-05 | Sujat Jamil | Methods and apparatus for detecting an address conflict |
US7237067B2 (en) * | 2004-04-22 | 2007-06-26 | Hewlett-Packard Development Company, L.P. | Managing a multi-way associative cache |
JP2006119796A (ja) * | 2004-10-20 | 2006-05-11 | Matsushita Electric Ind Co Ltd | キャッシュメモリシステムおよび動画処理装置 |
-
2006
- 2006-05-17 US US11/437,501 patent/US7673102B2/en not_active Expired - Fee Related
- 2006-09-12 US US11/531,111 patent/US7584326B2/en not_active Expired - Fee Related
-
2007
- 2007-05-17 CN CN2007800173653A patent/CN101443740B/zh not_active Expired - Fee Related
- 2007-05-17 KR KR1020087030621A patent/KR101041647B1/ko active IP Right Grant
- 2007-05-17 WO PCT/US2007/069188 patent/WO2007137141A2/en active Application Filing
- 2007-05-17 EP EP07783898A patent/EP2035937A2/en not_active Withdrawn
- 2007-05-17 JP JP2009511243A patent/JP5080564B2/ja not_active Expired - Fee Related
-
2012
- 2012-08-30 JP JP2012190169A patent/JP5259866B2/ja not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521162A (zh) * | 2011-11-30 | 2012-06-27 | 华为技术有限公司 | 用于缓存数据处理的方法和装置 |
CN102521162B (zh) * | 2011-11-30 | 2014-12-31 | 华为技术有限公司 | 用于缓存数据处理的方法和装置 |
CN104011692A (zh) * | 2011-12-26 | 2014-08-27 | 瑞萨电子株式会社 | 数据处理装置 |
CN104011692B (zh) * | 2011-12-26 | 2017-03-01 | 瑞萨电子株式会社 | 数据处理装置 |
CN103218315A (zh) * | 2012-01-20 | 2013-07-24 | 国际商业机器公司 | 基于时间组记录确定高速缓存组替换顺序的方法和系统 |
CN107924309A (zh) * | 2015-07-30 | 2018-04-17 | 华为技术有限公司 | 用于可变通道架构的系统和方法 |
US10691463B2 (en) | 2015-07-30 | 2020-06-23 | Futurewei Technologies, Inc. | System and method for variable lane architecture |
US10884756B2 (en) | 2015-07-30 | 2021-01-05 | Futurewei Technologies, Inc. | System and method for variable lane architecture |
CN109074319A (zh) * | 2016-04-08 | 2018-12-21 | 高通股份有限公司 | 高速缓存中的分配的选择性绕过 |
Also Published As
Publication number | Publication date |
---|---|
EP2035937A2 (en) | 2009-03-18 |
JP2013030173A (ja) | 2013-02-07 |
US20070271416A1 (en) | 2007-11-22 |
JP2009537912A (ja) | 2009-10-29 |
WO2007137141A3 (en) | 2008-02-28 |
US7673102B2 (en) | 2010-03-02 |
KR20090025243A (ko) | 2009-03-10 |
US7584326B2 (en) | 2009-09-01 |
CN101443740B (zh) | 2012-12-05 |
US20070271417A1 (en) | 2007-11-22 |
WO2007137141A2 (en) | 2007-11-29 |
JP5080564B2 (ja) | 2012-11-21 |
KR101041647B1 (ko) | 2011-06-14 |
JP5259866B2 (ja) | 2013-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101443740B (zh) | 用于高速缓存存储器的最大驻留替换的方法和系统 | |
US9569270B2 (en) | Mapping thread phases onto heterogeneous cores based on execution characteristics and cache line eviction counts | |
US10007605B2 (en) | Hardware-based array compression | |
KR101121592B1 (ko) | 버스트 판독기록 동작을 구비한 처리 장치 | |
CN107704321A (zh) | 内存分配的方法、装置及终端设备 | |
CN1326132A (zh) | 具有压缩指令的处理器及处理器指令的压缩方法 | |
US20210089470A1 (en) | Address translation methods and systems | |
US20150143045A1 (en) | Cache control apparatus and method | |
CN103907095A (zh) | 移动存储器高速缓存读取优化 | |
WO2007048133A2 (en) | Pointer computation method and system for a scalable, programmable circular buffer | |
CN113015966A (zh) | 压缩式计算机存储器访问 | |
WO2021061446A1 (en) | Storage management apparatus, storage management method, processor, and computer system | |
CN105353987A (zh) | 一种文件处理方法及装置 | |
CN102821045B (zh) | 多播报文复制方法及装置 | |
CN110059024B (zh) | 一种内存空间数据缓存方法及装置 | |
US20120185668A1 (en) | Memory management unit and apparatuses having same | |
TW200617668A (en) | Cache memory management system and method | |
CN113742290A (zh) | 一种数据存储方法、装置、存储介质及电子装置 | |
US11243767B2 (en) | Caching device, cache, system, method and apparatus for processing data, and medium | |
CN102736988A (zh) | 存储器管理装置、存储器管理方法和控制程序 | |
CN106326326B (zh) | 一种Android系统中的图片缓存优化方法 | |
WO2018052718A1 (en) | Method and apparatus for masking and transmitting data | |
CN108733625B (zh) | 运算装置及方法 | |
CN107807888B (zh) | 一种用于soc架构的数据预取系统及其方法 | |
CN107391668A (zh) | 一种图片文字搜寻系统及方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20121205 Termination date: 20210517 |