CN101617298B - 用于dma、任务终止和同步操作的缓存一致保持 - Google Patents
用于dma、任务终止和同步操作的缓存一致保持 Download PDFInfo
- Publication number
- CN101617298B CN101617298B CN2005800188791A CN200580018879A CN101617298B CN 101617298 B CN101617298 B CN 101617298B CN 2005800188791 A CN2005800188791 A CN 2005800188791A CN 200580018879 A CN200580018879 A CN 200580018879A CN 101617298 B CN101617298 B CN 101617298B
- Authority
- CN
- China
- Prior art keywords
- memory
- cache
- address
- group
- cache lines
- 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
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/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/0804—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
-
- 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/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- 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/0891—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using clearing, invalidating or resetting means
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Mobile Radio Communication Systems (AREA)
- Time-Division Multiplex Systems (AREA)
Abstract
用于在存储器缓存(105)上执行一致操作存储器缓存控制结构,包括:接收处理器,用于接收(301)包括与主存储器(103)相关的多个地址的地址组的地址组指示。地址组指示可包括任务标识以及对应于主存储器(103)的存储器块的地址范围。控制单元(303)顺序地处理缓存线组的每一线。具体地,通过评价匹配标准,确定每一缓存线是否与地址组的地址相关联。如果满足匹配标准,则在缓存线上执行一致操作。如果在一致操作和其他存储器操作之间存在冲突,则一致装置抑制一致操作。本发明允许缓存一致操作的减小的持续时间。该持续时间还与一致操作所包括的主存储器空间的大小无关。
Description
技术领域
本发明涉及存储器缓存控制结构及执行其一致操作的方法。
背景技术
在例如数据处理系统、消费电子、计算机、汽车等的许多应用中使用数字数据处理系统。例如,个人计算机(PC)使用复杂的数字处理功能来提供广泛用户应用的平台。
数字数据处理系统典型地包括输入/输出功能、指令和数据存储器以及一个或多个数据处理器,例如微控制器、微处理器或数字信号处理器。
处理系统的性能的一个重要参数是存储器性能。对于最佳性能,期望存储器是大的、快速的并优选是廉价的。很遗憾,这些特性趋于是冲突的需求,并且当设计数字系统时需要适宜的折中。
为了改进处理系统的存储器性能,已经开发了寻求开发不同类型的存储器的单个优点的复杂的存储器结构。具体,普遍与较大的、较慢的并且较廉价的主存储器结合使用快速缓存存储器。
例如,在PC中,以包括典型不同大小和速度的存储器的存储器层次来组织存储器。因此PC可以典型地包括大的、廉价但是慢的主处理器,并此外具有一个或更多的缓存存储器级,包括相对小并且昂贵但是快速的存储器。在操作期间,来自主存储器的数据被动态地复制到缓存存储器中以允许快速读取周期。相似地,数据可以被写入缓存存储器中而不是主存储器中,由此允许快速的写入周期。
因此,缓存存储器动态地与主存储器的不同存储器位置相关联,并且很清楚主存储器和缓存存储器之间的接口和交互对于可接受的性能来说是至关重要的。因此,进行了关于缓存操作的重要研究,并开发了当数据写入缓存存储器而不是主存储器或从缓存存储器读取时,以及当在缓存存储器和主存储器之间交换数据时进行控制的各种方法和算法。
典型地,无论何时处理器执行读取操作,缓存存储器系统首先检查相应的主存储器地址是否当前与缓存相关联。如果缓存存储器包含对于主存储器地址的有效数据值,则该数据值被缓存放置在系统的数据总线上,并且读取周期执行而没有任何等待周期。然而,如果缓存存储器不包含主存储器地址的有效数据值,则执行主存储器读取周期,并从主存储器取回数据。典型地,主存储器读取周期包括一个或多个等待周期,由此减缓了处理。
处理器可以从缓存存储器收到数据的存储器操作典型地被称为缓存命中,而处理器不能从缓存存储器接收数据的存储器操作典型地称为缓存缺失。典型地,缓存缺失不仅仅导致处理器从主存储器取回数据,而且还导致主存储器和缓存之间的大量数据传输。例如,如果访问给定的地址导致缓存缺失,可将随后的存储器位置传输到缓存存储器。由于处理器频繁地访问连续的存储器位置,缓存存储器包括期望的数据的概率因此通常增加。
缓存存储器系统典型地分为缓存线,其对应于缓存存储器的解析度。在已知为组关联(set associative)缓存系统的缓存系统中,多个缓存线分组为不同的组,其中每一个组对应于到主存储器地址的较低数据位的固定映射。每一个缓存线形成组的极端例子称为直接映射缓存,并导致每个主存储器地址映射到一个特定缓存线。所有缓存线属于单个组的另一极端例子称为完全联合缓存,并且这允许每一缓存线映射 到任意主存储器位置。
为了保持追踪每一缓存线与哪个主存储器地址相关联(如果有的话),缓存存储器系统典型地包括数据阵列,其对于每一缓存线保持指示该线和主存储器之间的当前映射的数据。具体,数据阵列典型地包括相关联的主存储器地址的更高数据位。该信息典型地称为标记符(tag),以及该数据阵列称为标记阵列。
很明显,缓存存储器的控制是非常重要的,特别是对于管理主存储器和缓存存储器之间的对应来说至关重要。例如,如果在主存储器中修改数据而缓存存储器的相应数据没有被更新或指定为无效数据,那么将发生灾难性的后果。相似地,如果已经写入缓存存储器的数据在它在缓存存储器中被覆盖之前或者在直接访问主存储器的相应位置之前没有被传输到主存储器,那么数据差异可导致错误。因此处理系统的可靠性很大地依赖于缓存的控制。因此,在适宜的时机执行一致操作,以消除或减小缓存存储器和主存储器之间的差异不导致不期望的影响的概率。
例如,直接存储器访问(DMA)模块能够访问直接访问主存储器。DMA可以例如是部分硬盘接口,并用于在硬盘写入操作期间将数据从主存储器传输到硬盘。在可以执行DMA操作之前,写入缓存存储器的所有数据都被传输到主存储器是重要的。因此,在硬盘写操作之前,处理器系统优选地执行一致操作,其中将已经写入缓存存储器但是没有写入主存储器的所有数据传输到主存储器。使用尽可能小的复杂性和时间消耗来执行一致操作,以使得系统用于正常操作,并减小系统的计算负担。
然而,通常这种一致操作是复杂的、耗时的、耗功率的和/或需要复杂的硬件,由此增加了成本。例如,如果将主存储器的给定地址块传输到硬盘,那么传统方法包括逐步经过主存储器的每一个位置,并 检查缓存是否包括该位置的更新的值。由于主存储器地址块可以是非常大的,这是一个很麻烦的过程,其典型地对与软件实现来说非常耗时,并对硬件实现有高的复杂性要求。
通常有两种实现一致功能的方法:硬件和软件一致机制。硬件方法包括增加调查(snoop)机制,用于每个基于缓存的系统。调查机制追踪由其他主设备(例如DMA处理器)对主存储器进行的所有访问。当调查机制检测到对缓存中的有效数据的访问时,它通知主存储器。对于对主存储器的写入,缓存数据可以自动被无效,以及对于读取,数据可以通过缓存而不是主存储器被馈送到请求者。软件一致方法基于通过软件使用户清除(flush)、无效和同步缓存。这是通过增加控制器完成的,该控制器通过软件结构执行这些操作。硬件一致机制的主要优点是它是自动完成的,即,用户不需要管理操作。硬件一致机制的主要缺点是它实现起来非常复杂、它具有高功耗以及用尽半导体的其他区域。在低成本低功率系统例如数字信号处理器(DSP)中,硬件方案不是适宜的。
在欧洲专利协定申请EP 1182566A1中描述了缓存一致操作的例子。该文献描述了基于限定主存储块的开始和结束地址并随后遍历由缓存线的解析度的范围内的所有地址的缓存保持操作。对于每一个步骤,主存储器地址与存储在缓存存储器标记阵列中的所有值相比较,并且如果检测到匹配,则执行一致操作。然而,这导致非常耗时的处理。此外,尽管可以通过引入主存储器地址和标记阵列之间的并行硬件比较来减少处理时间,但是这增加了硬件复杂性并因此增加成本。
此外,一致操作的持续时间取决于所处理的存储器块的大小。因此,随着存储器范围的大小增加,必须遍历增加的地址数目,由此增加了持续时间。这是显著的缺点,特别是对于实时系统,其中处理持续时间的不确定性显著地使得不同处理的实时管理变得复杂。
US2002 065980描述了具有多个处理器的数字系统,包括与每个处理器相关联的私有一级缓存,以及具有每条目多个段的共享二级缓存,以及三级物理存储器。US2002 065980公开了使用两个限定器(qualifier)来限定缓存线上的“匹配”的机制。
EP1030243描述了虚拟索引,虚拟标记缓存,其使用可中断的硬件清除功能来在环境切换期间清除缓存中的“脏的条目”。MAX计数器和MIN寄存器限定了脏的缓存位置范围。在硬件清除功能期间,MAX计数器向下计数,而如果条目被标记为脏的,将在由MAX计数器给出的地址的缓存条目写入主存储器。特别地,如果发生中断,MAX计数器被禁用,直到在服务了该中断之后发出随后的清除请求。
因此,改进的存储器缓存控制结构、处理系统和在存储器缓存上执行一致操作的方法将是有利的,具体地,允许增加的灵活性、减小的复杂性、减小的耗时、减小的成本、增加的可靠性和/或改进的性能的系统将是有利的。
发明内容
本发明提供如所附的权利要求所述的存储器缓存控制结构、存储器缓存系统、处理系统合存储介质。
因此,本发明寻求有益地减轻、减少或消除上述的一个或多个缺点,单独地或者以任何组合。
附图说明
现在将参照附图描述本发明的例子实施例,在附图中:
图1是根据本发明的实施例的包括缓存存储器系统的处理器系统的说明;
图2是缓存存储器的结构的说明;
图3说明根据本发明的实施例的缓存存储器系统;
图4说明根据本发明的实施例的用于缓存存储器系统的标记阵列的例子;以及
图5说明根据本发明的实施例的执行缓存存储器一致操作的方法的流程图。
具体实施方式
图1是根据本发明的实施例的包括缓存存储器系统的处理器系统的说明。
处理系统100包括处理器101和主存储器103,该主存储器103存储在运行的应用程序中由处理器101使用的指令和数据。处理器101可以例如是微处理器或数字信号处理器,并且主存储器在本实施例中是动态RAM(随机存取存储器)。主存储器103相对大,并可以在1G字节的数量级上。处理器101和主存储器103连接到缓存存储器系统105,其连同主存储器103形成处理系统100的分级存储器结构。
缓存存储器系统105包括缓存存储器107和缓存控制器109。缓存存储器107在本实施例中是静态RAM,它比主存储器103所使用的动态RAM显著地更快。然而,缓存存储器107比主存储器103显著地更小,并可以例如在256K字节的数量级上。缓存控制器109控制分级存储器系统的操作,并具体控制缓存存储器系统105的操作以及对主存储器103的访问。
在操作中,由处理器101运行的任务通过寻址主存储器103的地址空间中的存储器位置来访问存储器。这些存储器访问可以由缓存存储器系统105来服务,或者可导致对主存储器103的存储器访问。具体,对于读取操作,缓存控制器109确定缓存存储器107是否包括该特定主存储器地址的有效数据,并且如果是的话,取回该值并将该值馈送到处理器101。具体,如果检测到缓存匹配,则缓存存储器系统105将适宜的数据放置在数据总线上。如果缓存控制器109确定缓存存 储器107不包括该特定主存储器地址的有效数据,那么它从主存储器103取回适宜的数据。具体,缓存控制器109可以使得主存储器103将适宜的数据放置在数据总线上。
当发生缓存缺失时,缓存控制器109进一步将从主存储器103取回的数据加载到缓存存储器107,由于相同的主存储器地址在先前的访问之后经常再次被访问。由于主存储器103的缓慢的相应时间,典型地断言等待信号,由此在读取过程中引入额外的等待状态。因此,缓存命中将比缓存缺失导致更快的存储器访问。此外,由于在当前存储器位置附近的存储器位置被访问的概率增加,缓存控制器109典型地将从相邻于该存储器位置的存储器位置传输数据。
应理解,尽管参照缓存控制器109作为单个隔离的功能模块而描述了本实施例,这仅仅是为了说明的简明和简洁,缓存控制器109可以以任何适宜的方式来实现。具体,可以以硬件、软件、固件或其组合来实现缓存控制器109。此外,缓存控制器109可以例如与缓存存储器107、处理器101集成,或者是单独的模块。具体,缓存控制器109的全部或者部分可以完全或部分地以在处理器101上运行的软件,或以单独的处理器或存储管理单元来实现。
图2是缓存存储器107的结构的说明。在该例子中,缓存存储器107是直接映射的缓存存储器,包括2k缓存线。在该例子中,每个缓存线包括4数据字节,以及主存储寻址的解析度是1字节。在该例子中说明k=3并且因此缓存包括32字节。应理解,实际的缓存典型地更加大。例如,当前用于PC的缓存存储器典型地包括每一缓存线中包括16至32字节,并且例如8192个缓存线(即k=13)的缓存。
为了清楚起见,在特定例子中认为主存储器103包括1k字节,对应于10位地址空间。应理解,实际的主存储器典型地更加大并具有显著加长的地址。在例子中,由处理器101放置在地址总线上的主存储 器地址可以由下面的二进制值表示:
b9,b8,b7,b6,b5,b4,b3,b2,b1,b0
在例子中,通过地址位和缓存存储器位置之间的固定映射获得到缓存存储器位置的映射。因此,在例子中,b1,b0确定缓存线中的字节位置,并且b4,b3,b2确定缓存线地址,也称为索引。因此,具有b1,b0=1,0以及b4,b3,b2=1,0,1的地址将映射到缓存线101b=5的存储器位置10b。在直接映射缓存的例子中,具有b1,b0=1,0以及b4,b3,b2=1,0,1的所有主数据地址将映射到该缓存位置。
缓存存储器105持续地追踪给定的缓存线当前与哪个存储器位置相关联,以及在缓存线中保持的数据状态。特别地,缓存控制器109存储主存储器地址的较高地址位的值,缓存线当前与该地址关联。较高地址位在这种情况下称为标记,并且缓存控制器109保持标记阵列。标记阵列包括对于每一缓存线的条目,每个条目通过用于选择缓存线的k个数据位(索引)来寻址。当缓存线与新的主存储器地址相关联时,先前的标记条目被新的主存储器地址的较高地址位,即被该特定示例中的数据位b9,b8,b7,b6,b5所覆盖。
因此,只要处理器101执行读取操作,则缓存存储器系统105通过使用索引(b4,b3,b2)访问标记阵列并比较所存储标记和当前地址(b9,b8,b7,b6,b5)的较高地址位,确定在缓存存储器中是否存在相应值。如果标记匹配地址并且标志指示所存储的缓存数据有效,则将来自缓存存储器的数据值放置在数据总线上导致低等待时间读取操作。
直接映射缓存的缺点是每个主存储器地址只能与单个缓存线相关联,导致在不同的主存储器地址之间冲突的可能性增加,并且即使对于非常轻负载的缓存来说也是显著的。例如,即使仅大的缓存存储器的单个缓存线与给定的主存储器地址相关联,与不能将第二主存储器 地址与该缓存相关联,如果这发生,导致与已经关联的主存储器地址的相同索引。
通过允许每一缓存线与任意主存储器地址相关联,完全关联的缓存提供显著地更大灵活性。具体地,对于包括零位的索引和包括没有用于寻址缓存线中的位置的全部地址位的标记来说,这被认为是等同的。
可以将组关联缓存看作直接映射缓存和完全关联缓存之间的中间物。在组关联缓存中,缓存存储器的块与关于直接映射存储器缓存的特定较低地址位相关联。然而,与直接映射缓存相比,多个缓存块映射到相同地址。例如,在上述例中,组关联缓存可能仅仅使用两个位b3,b2的索引,而不是具有三个位b4,b3,b2的索引。因此缓存存储器现在包括两个4个缓存线的块,而不是具有8个缓存线的单个块。因此,每个主存储器可以与两个不同的缓存线相关联。
因此,缓存存储器系统105保持对于给定索引具有多个条目的标记阵列。因此,当例如发生读取操作时,需要检查标记阵列中的多个条目,而不是对于直接映射缓存的仅仅一个条目。然而,必须被检查的条目的数目仍然相对小,并且可以通过并行处理便利操作。
因此为了缓存存储器系统105确定存储器访问是涉及缓存存储器107还是涉及主存储器103,其保持数据阵列(标记阵列),该数据阵列对于每一缓存线包括指示与主存储器103的关联的数据的。此外,缓存存储器系统105保持追踪缓存线的数据的状态。具体,缓存存储器系统105保持状态指示,其指示是否已经将新的数据写入给定的缓存线而不是写入主存储器。如果是的话,在缓存存储器107和主存储器103的数据之间有差异,并且缓存存储器107的数据在从缓存丢失该数据或者直接访问主存储器103之前必须被写入主存储器103。该指示称为脏位指示。
相似地,对于读取操作,使用有效指示来指示缓存线是否包括从主存储器103取回的有效数据。
应理解,状态指示在某些实施例中可涉及整个缓存线或者可以例如保持用于缓存线中的每个位置的单个状态指示。
应理解,为了管理分级存储器系统,需要一致(保持)操作。这种一致操作包括保持缓存存储器107和主存储器103之间的一致的操作,包括保持写入操作、读取操作、同步操作等。
图3更将详细地说明根据本发明的实施例的缓存存储器系统105。该说明和描述是为了简明和清楚目的,主要精力放在描述实施例所需的功能上。具体,说明主要集中在当执行对于直接映射缓存的一致操作时,缓存存储器系统105的操作上。
在实施例中,缓存存储器系统105包括接收处理器301,其从处理器101接收指令。接收处理器301连接到控制单元303,其控制缓存存储器系统105的一致操作。控制单元303进一步连接到标记阵列305以及缓存存储器107和主存储器103。
根据本发明的实施例,由接收处理器301启动一致操作,该接收处理器从处理器101接收地址组指示。地址组指示标示主存储器103中的存储器位置的组。在所说明的实施例中,该组存在于存储器位置的连续块,在开始地址开始,并在结束地址结束。然而,应理解,在其他实施例和其他应用中,地址组可对应于其他组地址,包括主存储器103的不连续的地址区域。
在所说明的实施例中,接收处理器301因此接收地址组指示,其存在于开始地址和结束地址。接收处理器301进一步接收将在特定地 址范围上执行特定一致操作的指示。例如,地址组可对应于给定的应用,并且由于应用终止可以促成一致操作。作为另一例子,可以建立DMA操作以直接访问主存储器103的特定地址范围,并促成一致操作来确保对于该地址范围被写入缓存的全部数据在DMA操作之前被传输到主存储器103。
接收处理器301将开始地址和结束地址馈送到存储这些值的控制单元303。然后控制单元303进行执行一致过程。然而,与传统方法相反,控制单元303不遍历该地址范围的主存储器地址来确定对于该频率范围的每个地址是否存在缓存条目。而是,在当前实施例中,控制单元303通过遍历标记阵列305并对于每一个条目根据适宜的匹配标准确定缓存线是否与主存储器地址范围相关联,顺序地处理每一缓存线。如果发现缓存线与主存储器地址范围相关联,则控制单元303在缓存线上执行所需要的一致操作。
例如,控制单元303首先取回对于零索引存储的标记。通过组合标记和索引来确定相应的主存储器地址,并且所得地址与开始和结束地址相比较。如果该地址在该范围内,则在缓存线上执行一致操作。例如,如果一致操作包括与清除该地址范围相关联的缓存的单元,则控制单元303导致缓存线的数据写入主存储器103。然后控制单元303继续取回对于下一索引所存储的标记,例如对于索引1,然后重复对于该缓存线的操作。
因此,控制单元每次一个缓存线地遍历缓存标记阵列305,并且如果缓存线与特定存储器范围相关联,则对于每一缓存线在缓存存储器107上执行所需要的一致操作。
所述的方法相比于现有技术提供了多个优点,并便利或使得灵活的缓存存储器系统具有低复杂度、低成本和高可靠性。
特别地,由于主存储器地址范围典型地比缓存大小要大得多,因而需要考虑很少的比较周期。换句话说,评价匹配标准和有条件地执行一致操作的循环的重复的次数显著地被减小。这将典型地显著减小一致过程的持续周期,由此减小计算负载并使得系统可以进行其他活动。
此外,一致操作的持续周期取决于缓存的大小而不是地址范围的大小。这不仅仅趋于减小一致过程需要的时间,还导致其被限制并与地址范围无关。这在实时处理系统中特别是优点,并使得在这种系统中的时间管理变得便利。
因此,该方法相对简单并可以通过低复杂性的硬件、软件、固件或其组合来实现。特别地,可以将控制单元303的功能至少部分地实现为处理器101的固件程序。
应理解,上述为了清楚的说明没有考虑缓存线的数据的状态的评价。然而,优选地,控制单元303确定缓存线的数据的状态。因此匹配标准优选地包括缓存线数据的状态的考虑和/或响应于缓存线数据状态执行一致操作。例如,如果该状态指示对应于脏位状态,则仅将数据写入主存储器103。
还应理解,尽管说明特别地考虑了缓存线评价,但是该处理还可在缓存线的不同单元之间独立。例如,开始和/或结束地址不需要与缓存线划分相符,但是可以对应于缓存线内的数据单元。另外,数据的状态可以涉及单个单元,并且一致操作可以考虑每一个单个单元。例如,状态指示可以涉及缓存线中的单个数据字节,并仅将对于其设置脏比特指示的数据字节写入主存储器103。
还应理解,尽管控制单元303优选地每次一个缓存线地遍历整个缓存存储器107,但在某些实施例中仅仅遍历缓存线的子集中是有益 的,该子集可以是例如预设的或者动态确定的。
一致处理和操作可以是任何适宜的一致处理和操作。
特别地,一致操作可以是无效操作。无效操作优选地无效与特定地址范围相关联的所有缓存线。因此,控制单元303可以遍历缓存并对于对应于该地址范围的所有缓存线将状态指示设置为无效。该操作在其中在主存储器103中(通过DMA)更新数据的情况下或者其中缓存在缓存存储器107中保持临时变量的情况下例如可以是有益的,该临时变量在任务结束时可以被无效,因为不再需要它们了。
替换地或额外地,一致操作可以是同步操作。同步操作可以同步与特定地址范围相关的全部缓存线。因此,控制单元303可以遍历缓存并向主存储器103写入脏部分,并取消藏指示同时对于对应于该地址范围的全部缓存线保持有效指示。
该操作对于其中将由DMA从主存储器103读取存储器部分,同时为了未来使用保持缓存存储器107中的数据的有效性的情况下,可以例如是有益的。同步操作的另一用途是利用空闲周期来减小缓存存储器107中的脏部分的数目。
替换地或者额外地,一致操作可以是清除操作。清除操作可以清除与特定地址范围相关联的全部缓存线。因此,控制单元303可以遍历缓存,并将对应于该地址范围并具有脏位指示的全部缓存线的数据写入主存储器103,然后无效缓存线。该操作对于其中将在主存储器103而不包括缓存存储器系统105上直接执行存储器操作,并且当处理器101将不使用该数据时的情况可以例如是有益的。
在下面,将说明应用到组关联存储器的本发明的实施例。在该实施例中,将缓存存储器107组织为四个组。主存储器地址可以与任何 一个组相关联,因此对于每一个主存储器位置有四个可能的缓存线。该实施例与在图2中所示的缓存存储器系统105相兼容,并将参照其说明。
在该实施例中,由处理器的寻址采用虚拟存储器寻址。具体地,在处理器101上运行的每个任务使用标准地址空间,该标准地址空间可以由存储器管理单元映射到主存储器103中的给定物理存储器区域。每个运行的任务被分配一任务标识,当映射到主存储器103时,该任务标识由存储器管理单元使用。例如,第一任务的指令可以寻址在范围[0,FFFFh]中的存储器。存储器管理单元可以为该任务分配任务标识1,并将该范围映射到[10000h,10FFFFh]的物理存储器范围。第二任务的指令也可以寻址在范围[0,FFFFh]内的存储器。存储器管理单元可以为该任务分配任务标识2,并将该范围映射到[08000h,08FFFFh]内的物理存储器范围。
图4说明根据该实施例的对于缓存存储器系统105的标记阵列400的例子。标记阵列包括四个单独的数据结构401,403,405,407,每个结构对应于四组组关联缓存的一个。因此对于每一缓存线在标记阵列中存在条目。在该实施例中,每个条目包括对应于由处理器101使用的虚拟地址的较高位的标记。此外,每个条目包括任务标识,其指示该缓存线与哪个任务相关联。因此,标记阵列中的条目指示与缓存线相关联的物理主存储器地址。
图5说明根据本发明的该实施例的执行缓存存储器一致操作的方法的流程图。在所说明的实施例中,由支持一个或多个应用的处理器例如微控制器、中央处理器(CPU)或数字信号处理器(DSP)来执行该方法。在处理用于应用的后台执行图5的方法。
在步骤501开始该方法,其中使用限定执行一致操作的地址范围的开始地址和结束地址启动控制单元303。开始地址和结束地址指定为 由给定任务使用的虚拟地址。例如,对于其中第一任务寻址范围[0,FFFFh]内的存储器的情况,开始和结束地址在该范围内。为了关联虚拟地址和物理主存储器103地址范围,进一步使用任务标识(任务ID)启动控制单元303。在特定例子中,一致操作可以涉及第一任务的虚拟存储器间隔[1000h,17FFh]。因此,在步骤501中通过将开始地址设置为1000h、将结束地址设置为17FFh以及将任务ID设置为1来启动控制单元303。
在步骤503中继续该方法,其中将缓存线指针设置为对应于标识阵列400中第一组的第一条目401的第一缓存线。
在步骤503之后是步骤505,其中从标记阵列400取回标记和任务标识。因此从标记阵列400取回当前标记(0,0)和任务ID(0,0)。
在步骤503之后是步骤507,其中控制单元303确定对应于第一条目401的缓存线是否与对于其执行一致操作的地址相关联。特别地,控制单元303通过组合所取回的标记和该标记的索引而生成地址。因此,对于第一条目401,通过组合来自标记的地址位和索引的地址位生成完全虚拟地址。
所生成的地址与开始和结束地址相比较,并且控制单元303确定所取回的任务ID是否匹配特定任务ID。因此,确定任务ID 1是否存储在任务ID(0,0)中。如果所生成的地址在特定地址范围内并且任务ID匹配,那么指定匹配,并且因此期望在相应缓存线上执行一致操作。在这种情况下,在步骤509中继续该方法,否则在步骤513中继续该方法。
在步骤509中,确定执行一致操作当前是否可行。具体地,控制单元303确定在一致操作和另一存储器操作之间是否存在冲突。控制单元303例如确定在一致操作和其他存储器操作之间共享的资源是否 由其他存储器操作当前使用。例如,如果缓存存储器107访问在通常缓存操作(缓存线重分配)和一致操作之间共享的资源,那么当在两者之间存在冲突时,可以将更高优先级给与通常缓存操作。
如果在步骤509确定存在冲突,则当前实施例中的控制单元303继续来抑制一致操作。具体,控制单元303可以通过延迟一致操作直到终止其他存储器操作,来抑制一致操作。这可以通过在步骤519中持续地确定是否由并发线操作代替该线来实现。如果在步骤519中线已经被替换,则该方法运行到步骤513。如果在步骤519中线没有被替换,则处理返回步骤509来确定当前是否实际来执行一致操作。
因此,扫描(sweep)分段取消标准(在步骤519)标识与扫描分段相关联的缓存线是否已经被替换,由于在步骤507中已经先前检查了匹配标准。
当在步骤509确定没有冲突时,方法进行到步骤511,其中控制单元303在相应缓存线上执行期望的一致操作。如上所述,一致操作可以例如是清除、无效或同步操作。
步骤511之后是步骤513,其中控制单元303确定其是否已经遍历整个缓存。如果是的话,在步骤515继续该方法,其中处理终止。否则在步骤517中继续该方法,其中更新指针以指向下一缓存线。然后该方法通过处理下一缓存线,在步骤505中继续。下一缓存线被确定为在该组中的随后缓存线。当已经达到组的最后缓存线时,将下一缓存线确定为下一组的第一缓存线。当已经达到最后的组的最后的缓存线时,这在步骤513中检测,导致该方法终止。
因此,该方法导致顺序地遍历每一单个组的缓存线,并且还顺序地遍历单个组。因此,在该实施例中,顺序处理缓存的所有缓存线,并且对于每一缓存线,确定一致操作是否合适,以及如果是的话,则 执行操作。
具体地,通过首先评价第一条目409,然后组0的下一条目411等等,来遍历图4的标记阵列400,直到达到组0的最后条目413。然后该方法通过指向组1的第一条目415来步进到组1。相似地,组1的最后条目417之后是组2的第一条目419,以及组2的最后条目421之后是组3的第一条目423。当已经达到组3的最后条目425时,已经执行了一致过程。
应理解,尽管所述实施例说明了一种实现方式,其中以所述顺序依次执行各个步骤,但是可以等同地应用步骤的并行操作和/或不同顺序。具体,步骤505、507、509、513、517可以并行于步骤511来执行。因此,当对于缓存线执行一致操作时,控制器可以评价下一缓存线或多个缓存线。
优选地,当处理在步骤515终止时,控制单元303设置终止指示。特别地,控制单元303可以使得设置中断指示,这导致在处理器的中断序列。中断指示可以是软件中断指示或可以是硬件中断指示,例如在处理器101的中断信号输出设置信号。这会使得不同任务的管理容易,特别地,使得实时处理系统中的任务时间管理容易。
上述实施例集中在基于特定地址范围,响应于单个匹配标准确定匹配。然而,在其他实施例中,可以使用其他标准和/或可以使用多个标准。例如,地址组指示可存在于任务标识,并且匹配标准可以仅仅确定每一缓存线是否匹配该任务标识。因此,可以通过指定相应的任务标识,对于给定的任务执行一致操作。
优选地,控制单元303操作为在多个匹配标准之间选择,特别地,其可以操作为响应于从处理器101接收的数据,在不同的匹配标准之间选择。
例如,如果控制单元303接收与一致处理激发命令有关的开始地址、结束地址和任务标识,那么它可以通过使用评价标记阵列中的条目是否包括匹配所有三个要求的数据的匹配标准来继续操作。然而,如果仅仅接收与激发命令相关的开始地址和结束地址,那么匹配标准仅仅考虑所存储的地址标记。这将允许给定存储器区上的简单的一致操作,而不管哪一个任务使用特定区域。此外,如果控制单元303仅仅接收具有激发命令的任务标识,那么匹配标准仅仅确定任务标识是否匹配。这允许对于特定任务的简单一致操作。最后,如果没有接收到与激发命令相关的特定数据,那么控制单元303可以在整个缓存存储器107上执行一致操作,而不管缓存存储器107和主存储器103之间的联系。
应理解,尽管上述说明特别地适用于数据存储器缓存,本发明还可以应用到例如指令存储器缓存。
因此,本发明的优选实施例描述了一种处理并发CPU和缓存扫描处理的机制。任何扫描或清除操作包括多个部分。应注意,每个部分在特定缓存线上执行操作。
在本发明的优选实施例中,扫描片断延迟或取消的管理由基于一个片断接一个片断的内部机制来处理。这允许无缝的并行CPU和缓存扫描操作。这在允许CPU尽可能地有效(未停滞或者处于等待模式)中提供了显而易见的优势。因此,CPU可以是有效的,同时缓存扫描操作是有效的并且内部管理由该并行操作所导致的任何冲突。
应理解,本发明不限制于每个循环仅仅执行一次比较,而是,可以例如并行地执行多个比较。
尽管上文中已经描述了本发明的实施例的优选实现,但本领域技 术人员可以容易地应用这种发明性概念的变形和改进。
具体,应理解,参照处理系统的不同功能单元,为了清楚起见描述了上面的说明。然而,很清楚可以使用不同功能单元之间的功能的任何适宜区分,而不背离本发明。因此,参照特定功能单元仅仅视为参照用于提供所说明功能的适宜装置,而不是指示严格的逻辑或物理结构、组成或划分。例如,可以集成缓存控制器并与处理器互相作用或者是其的一部分。
可以以包括硬件、软件、固件或其任何组合的任何适宜形式实现本发明。然而,优选地,本发明实现为在一个或多个数据处理器上运行的计算机软件。
Claims (22)
1.一种存储器缓存系统(105),包括:
存储器缓存(107),所述存储器缓存用于在存储器缓存上执行一致操作;
用于接收用于地址组的地址组指示的装置(301),该地址组包括与主存储器(103)相关联的多个地址;
其特征在于:
处理装置(303),用于顺序地处理缓存线组的每一缓存线;该处理装置(303)包括:
匹配装置,用于通过评价匹配标准确定缓存线是否与地址组的地址相关联;
一致装置,用于如果满足匹配标准,则在缓存线上执行一致操作;以及
用于确定在一致操作和另一存储器操作之间是否存在冲突的装置,其中一致装置操作为如果存在冲突则抑制一致操作。
2.如权利要求1的所述存储器缓存系统,其中匹配标准包括评价与缓存线相关联的主存储器地址是否属于该地址组。
3.如权利要求2的所述存储器缓存系统,其中地址组指示包括主存储器的存储器块的开始地址和结束地址,并且匹配标准包括确定主存储器地址是否属于该存储器块。
4.如权利要求3的所述存储器缓存系统,其中开始地址和结束地址是虚拟存储器地址。
5.如权利要求2至4的任何一项的所述存储器缓存系统,其中匹配装置操作为响应于缓存线标记和缓存线索引,确定主存储器地址。
6.如权利要求1的所述存储器缓存系统,其中存储器缓存(105)是组关联存储器缓存,并且缓存线组包括不同组关联存储器组的缓存线。
7.如权利要求6的所述存储器缓存系统,其中处理装置(303)操作为顺序地处理组关联存储器缓存的组。
8.如权利要求1的所述存储器缓存系统,其中地址组指示包括至少一个任务标识的指示,并且匹配标准包括评价与第一缓存线相关联的任务标识是否与至少一个任务标识匹配。
9.如权利要求8的所述存储器缓存系统,其中地址组指示存在于任务标识中。
10.如权利要求1的所述存储器缓存系统,其中缓存线组包括存储器缓存的所有缓存线。
11.如权利要求1的所述存储器缓存系统,其中所述冲突涉及在一致操作和其他存储器操作之间共享的资源。
12.如权利要求1或11的所述存储器缓存系统,其中用于确定冲突是否存在的装置操作为如果一致操作和其他存储器操作导致对相同缓存资源的基本上同时的访问,则确定存在冲突。
13.如权利要求1的所述存储器缓存系统,其中一致装置操作为通过延迟一致操作和其他存储器操作的一个,抑制一致操作。
14.如权利要求1的所述存储器缓存系统,其中一致操作是无效操作。
15.如权利要求1的所述存储器缓存系统,其中一致操作是同步操作。
16.如权利要求1的所述存储器缓存系统,其中一致操作是清除操作。
17.如权利要求1的所述存储器缓存系统,其中处理装置(303)包括用于响应于确定已经处理了缓存线组的全部缓存线而设定终止指示的装置。
18.如权利要求17的所述存储器缓存系统,其中终止指示是中断指示。
19.如权利要求1的所述存储器缓存系统,其中存储器缓存是指令缓存。
20.如权利要求1的所述存储器缓存系统,其中存储器缓存是数据缓存。
21.一种处理系统,包括:
处理器;
主存储器;
缓存存储器,连接到处理器和主存储器;以及
如权利要求1的所述存储器缓存系统。
22.一种在存储器缓存上执行一致操作的方法,包括以下步骤:
接收用于地址组的地址组指示,该地址组包括与主存储器(103)相关联的多个地址;
其特征在于,包括下面的步骤:
顺序处理缓存线组的每一线;该处理包括对于缓存线组的每一缓存线执行下面的步骤:
通过评价匹配标准,确定第一缓存线是否与地址组的地址相关联,以及
如果满足匹配标准,则在第一缓存线上执行一致操作;
确定在一致操作和另一存储器操作之间是否存在冲突;以及
如果存在冲突,则通过一致装置抑制一致操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP04013507.1 | 2004-06-08 | ||
EP04013507A EP1605360B1 (en) | 2004-06-08 | 2004-06-08 | Cache coherency maintenance for DMA, task termination and synchronisation operations |
PCT/IB2005/051774 WO2005121966A2 (en) | 2004-06-08 | 2005-05-31 | Cache coherency maintenance for dma, task termination and synchronisation operations |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101617298A CN101617298A (zh) | 2009-12-30 |
CN101617298B true CN101617298B (zh) | 2012-03-21 |
Family
ID=34925293
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2005800188791A Expired - Fee Related CN101617298B (zh) | 2004-06-08 | 2005-05-31 | 用于dma、任务终止和同步操作的缓存一致保持 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20080301371A1 (zh) |
EP (1) | EP1605360B1 (zh) |
JP (1) | JP2008502069A (zh) |
CN (1) | CN101617298B (zh) |
AT (1) | ATE458222T1 (zh) |
DE (1) | DE602004025556D1 (zh) |
WO (1) | WO2005121966A2 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI556110B (zh) * | 2013-03-15 | 2016-11-01 | 英特爾股份有限公司 | 用於提供存取裝置函數的設備、系統及方法 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8060915B2 (en) | 2003-12-30 | 2011-11-15 | Entrust, Inc. | Method and apparatus for providing electronic message authentication |
US9281945B2 (en) * | 2003-12-30 | 2016-03-08 | Entrust, Inc. | Offline methods for authentication in a client/server authentication system |
US9191215B2 (en) | 2003-12-30 | 2015-11-17 | Entrust, Inc. | Method and apparatus for providing authentication using policy-controlled authentication articles and techniques |
US8230486B2 (en) * | 2003-12-30 | 2012-07-24 | Entrust, Inc. | Method and apparatus for providing mutual authentication between a sending unit and a recipient |
US8612757B2 (en) * | 2003-12-30 | 2013-12-17 | Entrust, Inc. | Method and apparatus for securely providing identification information using translucent identification member |
US8966579B2 (en) | 2003-12-30 | 2015-02-24 | Entrust, Inc. | Method and apparatus for providing authentication between a sending unit and a recipient based on challenge usage data |
US20090210629A1 (en) * | 2008-02-15 | 2009-08-20 | International Business Machines Corporation | Method, system and computer program product for selectively purging cache entries |
JP5728982B2 (ja) * | 2010-02-26 | 2015-06-03 | 株式会社Jvcケンウッド | 処理装置および書込方法 |
CN102035733B (zh) * | 2010-11-29 | 2013-04-10 | 武汉微创光电股份有限公司 | 通过以太网建立串行数据透明传输通道的方法 |
JP2016508650A (ja) * | 2013-03-28 | 2016-03-22 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー.Hewlett‐Packard Development Company, L.P. | リフレクティブメモリとのコヒーレンシの実施 |
WO2015195076A1 (en) * | 2014-06-16 | 2015-12-23 | Hewlett-Packard Development Company, L.P. | Cache coherency for direct memory access operations |
CN106302374B (zh) * | 2015-06-26 | 2019-08-16 | 深圳市中兴微电子技术有限公司 | 一种用于提高表项访问带宽和原子性操作的装置及方法 |
US20180054480A1 (en) * | 2016-08-17 | 2018-02-22 | Microsoft Technology Licensing, Llc | Interrupt synchronization of content between client device and cloud-based storage service |
US10157139B2 (en) * | 2016-09-19 | 2018-12-18 | Qualcomm Incorporated | Asynchronous cache operations |
CN109101439B (zh) * | 2017-06-21 | 2024-01-09 | 深圳市中兴微电子技术有限公司 | 一种报文处理的方法及装置 |
CN114157621A (zh) * | 2020-09-07 | 2022-03-08 | 华为技术有限公司 | 一种发送清除报文的方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1030243A1 (en) * | 1999-02-18 | 2000-08-23 | Texas Instruments France | Optimized hardware cleaning function for virtual index virtual tag data cache |
EP1182563A1 (en) * | 2000-08-21 | 2002-02-27 | Texas Instruments France | Cache with DMA and dirty bits |
EP1182559A1 (en) * | 2000-08-21 | 2002-02-27 | Texas Instruments Incorporated | Improved microprocessor |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4713755A (en) * | 1985-06-28 | 1987-12-15 | Hewlett-Packard Company | Cache memory consistency control with explicit software instructions |
JPH0816885B2 (ja) * | 1993-04-27 | 1996-02-21 | 工業技術院長 | キャッシュメモリ制御方法 |
JP3320562B2 (ja) * | 1994-09-22 | 2002-09-03 | 株式会社東芝 | キャッシュメモリを有する電子計算機 |
JP3176255B2 (ja) * | 1995-06-09 | 2001-06-11 | 日本電気株式会社 | キャッシュメモリ装置 |
US6378047B1 (en) * | 1997-07-07 | 2002-04-23 | Micron Technology, Inc. | System and method for invalidating set-associative cache memory with simultaneous set validity determination |
ATE548695T1 (de) * | 2000-08-21 | 2012-03-15 | Texas Instruments France | Softwaregesteuerte cache-speicherkonfiguration |
JP2004102825A (ja) * | 2002-09-11 | 2004-04-02 | Renesas Technology Corp | キャッシュメモリ制御装置 |
US8010682B2 (en) * | 2004-12-28 | 2011-08-30 | International Business Machines Corporation | Early coherency indication for return data in shared memory architecture |
-
2004
- 2004-06-08 AT AT04013507T patent/ATE458222T1/de not_active IP Right Cessation
- 2004-06-08 DE DE602004025556T patent/DE602004025556D1/de not_active Expired - Lifetime
- 2004-06-08 EP EP04013507A patent/EP1605360B1/en not_active Expired - Lifetime
-
2005
- 2005-05-31 US US11/570,303 patent/US20080301371A1/en not_active Abandoned
- 2005-05-31 WO PCT/IB2005/051774 patent/WO2005121966A2/en active Application Filing
- 2005-05-31 JP JP2007526629A patent/JP2008502069A/ja active Pending
- 2005-05-31 CN CN2005800188791A patent/CN101617298B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1030243A1 (en) * | 1999-02-18 | 2000-08-23 | Texas Instruments France | Optimized hardware cleaning function for virtual index virtual tag data cache |
EP1182563A1 (en) * | 2000-08-21 | 2002-02-27 | Texas Instruments France | Cache with DMA and dirty bits |
EP1182559A1 (en) * | 2000-08-21 | 2002-02-27 | Texas Instruments Incorporated | Improved microprocessor |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI556110B (zh) * | 2013-03-15 | 2016-11-01 | 英特爾股份有限公司 | 用於提供存取裝置函數的設備、系統及方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2005121966A2 (en) | 2005-12-22 |
CN101617298A (zh) | 2009-12-30 |
WO2005121966A3 (en) | 2006-06-22 |
JP2008502069A (ja) | 2008-01-24 |
ATE458222T1 (de) | 2010-03-15 |
EP1605360A1 (en) | 2005-12-14 |
DE602004025556D1 (de) | 2010-04-01 |
EP1605360B1 (en) | 2010-02-17 |
US20080301371A1 (en) | 2008-12-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101617298B (zh) | 用于dma、任务终止和同步操作的缓存一致保持 | |
EP3238074B1 (en) | Cache accessed using virtual addresses | |
CN111177030B (zh) | 混合存储器管理 | |
US5155824A (en) | System for transferring selected data words between main memory and cache with multiple data words and multiple dirty bits for each address | |
US8417915B2 (en) | Alias management within a virtually indexed and physically tagged cache memory | |
US6427188B1 (en) | Method and system for early tag accesses for lower-level caches in parallel with first-level cache | |
US20150106567A1 (en) | Computer Processor Employing Cache Memory With Per-Byte Valid Bits | |
US20150121046A1 (en) | Ordering and bandwidth improvements for load and store unit and data cache | |
US11698868B2 (en) | Logging pages accessed from I/O devices | |
CN103729306B (zh) | 高速缓存块无效的方法和数据处理设备 | |
US20140156930A1 (en) | Caching of virtual to physical address translations | |
CN107479860A (zh) | 一种处理器芯片以及指令缓存的预取方法 | |
JP2004530995A (ja) | 高速かつ正確なキャッシュウェイの選択 | |
US11775445B2 (en) | Translation support for a virtual cache | |
JP2019096309A (ja) | メンテナンス動作の実行 | |
WO2018229700A1 (en) | Sharing virtual and real translations in a virtual cache | |
US20140289469A1 (en) | Processor and control method of processor | |
US9747211B2 (en) | Cache memory, cache memory control unit, and method of controlling the cache memory | |
US7979640B2 (en) | Cache line duplication in response to a way prediction conflict | |
JP3709586B2 (ja) | 階層記憶システムにおけるデバイスアクセス方法 | |
US11726920B2 (en) | Tag processing for external caches | |
CN114780452A (zh) | 一种TLB entry合并方法及一种地址转换方法 | |
JPH10207773A (ja) | バス接続装置 | |
JP2019096307A (ja) | 複数のデータ・タイプのためのデータ・ストレージ | |
KR20070017551A (ko) | Dma, 태스크 종료 및 동기화 동작들을 위한 캐시코히어런시 유지 |
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 |
Granted publication date: 20120321 Termination date: 20150531 |
|
EXPY | Termination of patent right or utility model |