CN102067090A - 具有高速缓存电路的处理电路,检测高速缓存行中更新地址的游程 - Google Patents
具有高速缓存电路的处理电路,检测高速缓存行中更新地址的游程 Download PDFInfo
- Publication number
- CN102067090A CN102067090A CN2009801228205A CN200980122820A CN102067090A CN 102067090 A CN102067090 A CN 102067090A CN 2009801228205 A CN2009801228205 A CN 2009801228205A CN 200980122820 A CN200980122820 A CN 200980122820A CN 102067090 A CN102067090 A CN 102067090A
- Authority
- CN
- China
- Prior art keywords
- circuit
- address
- subrange
- cache
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims description 3
- 238000012545 processing Methods 0.000 title description 2
- 230000015654 memory Effects 0.000 claims abstract description 119
- 238000000034 method Methods 0.000 claims description 8
- 230000004044 response Effects 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims 2
- 238000000638 solvent extraction Methods 0.000 claims 1
- 230000009182 swimming Effects 0.000 description 19
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 3
- 230000007812 deficiency Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 238000002789 length control Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 238000011079 streamline operation Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/0864—Addressing 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
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)
Abstract
电路包括处理器核(100)、后台存储器(12)、以及处理器核(100)与后台存储器(12)之间的高速缓存电路(102)。在操作中,检测与高速缓存行关联的连续地址范围内的多个连续地址子范围,所述子范围包含高速缓存行中的在高速缓存电路中更新数据可用的地址,可以使用针对连续地址序列的单个存储器事务,检测到的子范围用于设定存储器事务的起始地址和长度或结尾地址。例如,这可以在高速缓存行中只有更新数据可用并且针对其他地址无有效数据时使用,或者在仅仅更新了高速缓存行中小段地址游程时用来减少带宽使用。
Description
技术领域
本发明涉及具有高速缓存存储器的系统、系统操作方法以及这种系统的编译器。
背景技术
众所周知,在处理器和后台存储器之间提供有高速缓存存储器。高速缓存存储器存储与后台存储器中选择的地址关联的数据的拷贝。当处理器对其高速缓存存储器中针对后台存储器地址的数据进行更新时,需要向后台存储器写回更新数据。典型地,这通过从高速缓存存储器向后台存储器拷贝回包含更新数据的高速缓存行来实现。
在多处理器系统的情况下,多个处理器中每一个均具有在该处理器与后台存储器之间耦接的相应高速缓存,其他处理器必须从后台存储器中重新读取包含更新数据的高速缓存行,或者,以更复杂的高速缓存设计为代价,其他处理器必须探听更新的高速缓存存储器与后台存储器之间的通信,以捕获更新的数据值。
这种形式的回拷占据相当的存储器带宽。针对单独更新的字的各个单独写入事务的使用会消耗相当大量的写周期。幸运的是,现代存储器也支持更大的写入事务。这可以用于将高速缓存行整体写入,作为单个写入事务,以避免针对单独更新的字的各个单独写入事务的开销。然而,高速缓存行写回仍然占用了相当的存储器带宽。此外,在多处理器系统的情况下,由于从后台存储器的回读,高速缓存行写回会进一步增加存储器带宽使用。
发明内容
目的是减少针对更新高速缓存数据的写回的存储器带宽。
提供了根据权利要求1所述的处理电路。其中,写回电路控制从高速缓存电路向后台存储器接口的更新数据写回。写回电路被配置为检测高速缓存中针对向后台存储器的选择性回传的地址的“游程”。“游程”是与高速缓存行相关联的、该高速缓存行中在高速缓存电路中无更新数据可用的地址之间的地址子范围。由此节省了带宽。
在实施例中,可以使用指定了起始地址和长度的存储器事务,起始地址和长度是根据检测到的子范围而确定的。这节省了带宽。
在实施例中,写回电路被配置为检测遭受如下状况的子范围:子范围仅包含高速缓存行中在高速缓存电路中更新数据可用的地址。这可以用于支持从数据已经更新的高速缓存行的低带宽写回,而无需首先从后台存储器加载数据。通过写回高速缓存行中仅包含更新数据的游程,可以进行快速写回,无需盖写未改变的数据。当没有单个更新地址连续游程时,在多种实施例中可以使用多个游程,或者备选地,可以写回针对各个单独地址的更新数据字,或者可以首先从后台存储器加载数据来填充间隙。
在实施例中,保持定义了游程的信息,同时通过在每次处理器核执行至高速缓存行的写入时更新数据,来使用高速缓存行。因此,在写回时不需要延迟来检测游程。在实施例中,可以永久提供存储器(即,不同的存储器电路或一个较大存储器的不同区域),用于保持针对所有集合和路的组合的游程的有关信息。在其他实施例中,可以将这种存储器动态地分配给被更新的集合和路的组合。这节省了电路面积。当更新足够不频繁时,不再需要更多存储器。如果在一些情况下,可用于所有更新的高速缓存行的游程信息的存储器不足,则可以向无存储器可用的高速缓存行提供标准的更多带宽密集写回处理。
附图说明
上述和其他目标以及有利方面将从使用如下附图的示例实施例的描述中显而易见。
图1示出了多处理系统;
图2示出了用于保持子范围有关信息的电路;
图3示出了用于保持子范围有关信息的电路;
图4示出了多处理系统。
具体实施方式
图1示出了多处理系统,包括多个处理元件10和后台存储器12。处理元件10经由存储器接口11耦接至后台存储器。每个处理元件10包括处理器核100、高速缓存电路102、写回电路104和游程存储器106。
每个处理元件10的高速缓存电路102耦接在处理元件10的处理器核100与后台存储器12之间。高速缓存电路102可以包括高速缓存存储器和控制电路,被设置为测试由来自处理器核100的命令所寻址的数据是否存在于高速缓存存储器中,以及根据是否存在数据来从高速缓存返回数据或从后台存储器加载数据。虽然分离地示出了写回电路104,但是写回电路104可以是高速缓存电路102的控制电路的一部分。
写回电路104具有与从处理器核100向高速缓存电路102的地址/命令输出相耦接的输入。此外,写回电路104耦接至高速缓存电路102、后台存储器12以及游程存储器106。
在操作中,处理器核100利用对后台存储器12中的位置进行寻址的加载和存储命令来执行相应程序。针对这些地址的数据的拷贝存储在高速缓存电路102中。在加载命令的情况下,可以将所寻址的数据以具有针对多个连续地址的数据的高速缓存行的形式从后台存储器12拷贝至高速缓存电路102。在存储命令的情况下,可以在从后台存储器12拷贝了原始数据之后,更新高速缓存电路102中高速缓存行中的数据。备选地,可以以高速缓存来保持被存储的数据,而无需首先加载周围的高速缓存行。在这种情况下,高速缓存电路102保持对高速缓存行中已经存储了更新数据的位置的记录。
在执行存储操作之后,写回电路104将数据从高速缓存电路102写回到后台存储器。为了准备写回,写回电路104在游程存储器106中保持与必须写回的地址有关的地址子范围。在实施例中,游程存储器106针对高速缓存电路102中存储的每个高速缓存行,存储对这种子范围的起始和结尾进行标识的信息,并且可选地存储对是否使能该子范围进行指示的标志。写回电路104监视处理器核的输出,以检测至高速缓存电路102的写操作以及获得该操作的写地址。写回电路104确定包含该写地址的高速缓存行,并将该写地址与该高速缓存行的子范围的起始和结尾进行比较。如果该写地址在子范围之外,则写回电路104更新游程存储器106中针对该高速缓存行的信息,以扩展该子范围,从而该子范围扩展至该写地址。
随后,当需要写回至后台存储器12时,写回电路104使用与起始和结尾地址有关的信息来选择来自高速缓存电路102的、将被写回至后台存储器12的数据。在实施例中,写回电路104从高速缓存电路102向后台存储器12写回数据,数据开始于针对起始地址的数据并结束于针对结尾地址的数据。
例如,可以通过来自处理器核100的程序的命令,来触发写回,或者,如果高速缓存电路102的控制器从高速缓存电路收回高速缓存行以为另一高速缓存行腾出空间,则通过该控制器,来触发写回。
当被触发时,写回电路104可以启动经由存储器接口11的多字存储器事务,基于来自游程存储器106的信息,向存储器接口11提供事务起始地址和事务长度控制字。在该实施例中,写回电路104控制高速缓存电路102向存储器接口11提供高速缓存的数据字,这些数据字来自相关高速缓存行中开始于起始地址并结束于结尾地址的地址。如果存储器接口11对存储器事务的起始地址和/或存储器事务的长度施加条件,例如要求这些地址与最低有效的n比特为零(例如,n=2)的地址对齐,则写回电路104可以扩展子范围,以将该子范围与这种事务边界对齐。这可以在更新游程存储器106时进行,或者在写回电路104使用来自游程存储器的信息来形成存储器事务时进行。在写回时,如果高速缓存行保持为被分配给相同的后台存储器地址,则重置起始和结尾信息,以便指示空的更新写地址子范围。当高速缓存行被新分配给存储器地址的一范围时也重置起始和结尾信息。
使用针对高速缓存行内的子范围的写事务的优点在于,可以通过限制至自从分配了高速缓存行以来或者自从上次写回了该高速缓存行以来、该高速缓存行中实际发生了更新的一部分高速缓存行,来缩短存储器写事务。虽然优选的是将起始和结尾设定为指向第一个和最后一个更新的数据,但是起始和结尾可以指示高速缓存行内更宽的子范围。虽然这可能导致不必要的写回,但是相比于在只有高速缓存行中部分数据已更新时写回整个高速缓存行,这仍然提供了增益。
在实施例中,高速缓存电路102被配置为分配用于写入的高速缓存行,而不首先从后台存储器12加载高速缓存行。在该实施例中,处理元件10的高速缓存电路102对处理元件10的处理器核100已经写入高速缓存行的数据加以标记。当处理器核100从高速缓存电路102读取数据时,高速缓存电路102测试是否已经首先写入了该数据。如果不是,则高速缓存电路102触发从后台存储器12的读取,可选地,在更新数据的写回之后。在无预先写回的情况下进行读取时,高速缓存电路102只针对高速缓存行中尚未由处理器核100写入的地址来输入后台存储器数据。
在该实施例中,可能需要选择性写回,只涉及到高速缓存行中已经由处理器核100写入的地址。在这种情况下,如果子范围不包含任何“间隙”,即,尚未写入数据的地址,则写回电路104只写回该子范围。如果写回电路104检测到间隙,则写回电路104可以使用针对各个单独写地址的存储器事务,而不是使用针对子范围的存储器事务。
写回电路104可以与高速缓存电路102的控制电路相组合。例如,写回电路104可以共享用于将后台存储器地址转换成高速缓存行选择的电路,并且写回电路104可以接收来自控制电路的写回触发信号。类似地,游程存储器106可以与高速缓存行相组合。
图2示出了执行保持起始和结尾点的有关信息这一功能的电路实施例的简单示例。电路包括地址转换电路20、起始地址存储器22a、结尾地址存储器22b、以及第一和第二比较器24a,b。地址转换电路20具有耦接至处理器核(未示出)的地址命令输出的输入、以及耦接至起始地址存储器22a和结尾地址存储器22b的地址输入的输出。起始地址存储器22a和结尾地址存储器22b分别具有耦接至第一和第二比较器24a,b的第一比较器输入的输出、以及耦接至处理器核(未示出)的地址命令输出的输入的数据输入。第一和第二比较器24a,b分别具有耦接至起始地址存储器22a和结尾地址存储器22b的写控制输入的输出。
地址转换电路20接收从处理器核(未示出)的地址/命令输出提供至高速缓存电路(未示出)的写地址的一部分,并将其转换成高速缓存行选择地址。在例如n路集合关联高速缓存(n-way set associativecache)中,这可能包括使用写地址的标签部分来选择集合和关联存储器,以基于写地址来选择高速缓存路。地址转换电路20的部分或全部也可以用来选择高速缓存电路(未示出)中的高速缓存行。
地址转换电路20将高速缓存行选择地址提供给起始地址存储器22a和结尾地址存储器22b。起始地址存储器22a和结尾地址存储器22b针对各个高速缓存行存储更新地址子范围的起始和结尾地址,以及可选地,存储指示子范围是否有效的标志。响应于高速缓存行选择地址,起始地址存储器22a和结尾地址存储器22b提供针对由写地址选择的高速缓存行所存储的起始和结尾地址。第一和第二比较器24a,b将存储的地址与来自处理器核(未示出)的地址命令输出的写地址的高速缓存行内地址部分相比较。如果比较指示该高速缓存行内地址部分低于存储的起始值,第一比较器24a控制起始地址存储器22a用来自处理器核(未示出)的地址命令输出的写地址的高速缓存行内地址部分替换高速缓存行的起始地址。类似地,如果比较指示该高速缓存行内地址部分高于存储的起始值,则第二比较器24b控制结尾地址存储器22b用来自处理器核(未示出)的地址命令输出的写地址的高速缓存行内地址部分替换高速缓存行的结尾地址。
应该理解,图2电路仅仅是用于执行起始和结尾地址有关信息更新这一功能的电路的一个示例。例如,备选地,可以存储起始地址和长度来表示起始和结尾的有关信息,定义结尾是起始地址与长度之和。则可以使用算术电路来转换地址。可以使用可编程控制器来更新存储器,并且可以使用单个存储器来存储起始和结尾两者、或者其他信息,比较器选择应当更新哪个。
在写回可能发生在具有“空隙”的高速缓存行(即,在该高速缓存行中,已由处理器核100写入了数据,而没有首先从后台存储器12拷贝该高速缓存行)的情况下,可能需要在存储器事务中传输使能信息,以指示必须用于更新后台存储器12的所选数据。相应地,后台存储器12可以被配置为接收这种使能信息,并仅仅使能针对由该信息指示的后台地址的数据。在另一实施例中,通过将写回电路104配置为仅在已首先加载了高速缓存行中的数据时才使用针对高速缓存行子范围的存储器事务,以及/或者通过仅在没有间隙时才使用针对子范围的存储器事务,否则使用针对单独地址的存储器事务,使得上述措施可以是不必要。
图3示出了只在使用连续相邻写地址时才保持子范围,以防止间隙的实施例。在这种情况下,起始存储器22a可以被配置为存储如下标志:指示是否存储有有效起始地址以及是否使能子范围写回。起始存储器22a被配置为在接收到写地址,同时标志指示这是高速缓存行中第一接收到的地址时,使能将写地址作为起始和结束地址存储。随后,(仅仅是)第二比较器24b检测接收到的写地址是否等于结尾地址加上由加法器30添加的增量。如果是,则更新结尾地址。否则,将起始存储器22a中针对高速缓存行的标志设定为禁用高速缓存行中子范围写回的值。
增量可以等于产生写地址的处理器核100的命令的写长度,例如,等于一个字增量。该增量可以具有对于所有写地址都相同的预定值,或者可以依据来自处理器核100的指示了命令类型的信息,来控制该增量。当在如此设定了标志的情况下进行至后台存储器12的写回时,写回电路104引起整个高速缓存行的写回。
如上所述,电路可以用于n路集合关联高速缓存电路102。在这种情况下,可以针对所有集合的所有路存储起始和结尾的有关信息的存储。备选地,可以仅针对各个集合中的一路存储定义了起始和结尾的信息。在该实施例中,写回电路被配置为存储对起始和结尾所应用到的路的指示。该实施例基于如下洞察:对高速缓存行进行写入可能不频繁,以致对相同集合中的多路的并发写入发生得不频繁。如果发生这种并发写入,则写回电路104从无起始和结尾信息存储的路整个地写回高速缓存行。
在另一实施例中,可以针对所有集合和路来使用起始结尾信息块池。在这种情况下,地址转换电路20可以包括关联存储器,以选择分配给写地址的存储器位置,以及将这些地址分配给高速缓存行,直到高速缓存行已被写回为止。
在另一实施例中,游程存储器106可以被配置为存储与相同高速缓存行的多个起始-结尾子范围有关的信息。因此,例如,写回电路104可以被配置为测试接收到的高速缓存行中的写地址,以确定该写地址是否等于先前的写地址加上写长度,如果等于,则增长当前子范围的结尾,如果不等于,则开始下一子范围。如果已经以这种方式开始的子范围的数目超过最大值,则写回电路104可以设定标志来禁用子范围的写回。当在如此设定了该标志的情况下写回后台存储器12时,写回电路104引起整个高速缓存行的写回。在另一实施例中,可以通过使用写事务中的禁用/使能信号来选择性地针对位于子范围中的那些地址来使能写入,从高速缓存行中最低子范围的起始地址开始,到最高子范围的结尾地址,来执行单个写事务。可以在该写事务之前执行测试,以在这种写事务与针对整个高速缓存行的写事务之间选择更加高效的写事务。
虽然已经示出了的实施例中响应于写地址来更新子范围的起始和结尾的有关信息,使得在需要写回时该信息是最新的,但是应该理解,备选地,写回电路104可以在接收到触发信号以执行写回之后,从高速缓存电路102收集该信息。
图4示出了其中使用这种后处理的处理系统的实施例。这里,高速缓存电路102被配置为针对高速缓存行中的各个位置保持“脏比特”,以指示这些位置的数据是否已更新。当接收到触发信号以执行针对高速缓存行的写入时,写回电路104读取高速缓存行的脏比特,并确定地址子范围是否已更新。随后,写回电路104使用由该子范围限定的存储器事务来执行写回。
这可由流水线操作来执行,即,写回功能的执行可以划分成在不同执行周期中执行的多个阶段。在第一阶段,计算有效地址。在第二阶段,检查高速缓存标签,以确定高速缓存行是否处于高速缓存中,并确定存储该高速缓存行所在的高速缓存路。这些阶段也是可以针对传统写回来执行的。在第三阶段,确定包含了具有更新数据的所有地址的高速缓存行的子范围,并且判定该子范围的大小是否低于确保更快写回的阈值。在第四阶段,根据上述判定,通过针对该范围的事务或者按照常规方式来写入数据。将理解,该方法可能具有的不足在于该方法可能增加写回的等待时间,并减慢多处理。该方法具有的优点在于简化了电路。
虽然已经示出了的实施例中,处理系统是多处理器系统,但是应该理解,子范围写回也可以应用于具有单个处理元件的系统。然而,在多处理器系统中,后台存储器带宽通常更加紧张。此外,子范围写回可以简化监听。当使用监听时,处理元件的高速缓存电路102监视来自其他处理器的写回存储器事务。当高速缓存电路102检测到来自另一高速缓存电路102的针对高速缓存行子范围的写回时,进行检测的高速缓存电路102可以使用来自该存储器事务的信息,来更新进行检测的高速缓存电路102中高速缓存行的子范围。
可以使用处理元件之间的同步,而不是监听,来阻止处理元件在其他处理器元件已经释放了共享数据之前开始对使用共享数据的程序部分的执行。在释放之前,可以将已经修改的共享数据写回后台存储器12,使得开始使用该共享数据的处理器元件可以从后台存储器读回已修改的共享数据。在这种情况下,子范围写回减小了同步点处写回突发的大小。
虽然后台存储器12示出为系统的一部分,但是应该理解,除后台存储器之外的系统的一部分可以实现在不包含该后台存储器12而只包含存储器接口11的集成电路中。在这种情况下,后台存储器12可以实现在一个或多个外部集成电路上。
本领域技术人员根据对附图、本公开和所附权利要求的学习,能够在实现要求保护的本发明时,理解和实现所公开的实施例的其他变体。在权利要求中,词语“包括”不排除其他元件或步骤,不定冠词“一”或“一个”不排除多个。单个处理器或其他单元可以完成权利要求中记载的多个项的功能。特定措施在互不相同的从属权利要求中记载的这一事实不能表明不能有利地使用这些措施的组合。计算机程序可以存储/分布在适合的介质上,例如与其他硬件一起提供或作为其他硬件一部分而提供的光存储介质或固态介质,也可以采用其他形式分布,例如经由互联网或其他有线或无线电信系统。权利要求中的任何附图标记不应被解释为限制权利要求的范围。
Claims (14)
1.一种处理电路,包括处理元件(10),处理元件(10)具有至后台存储器(12)的接口(11),处理元件(10)包括:
-处理器核(100);
-高速缓存电路(102),耦接在处理器核与所述至后台存储器(12)的接口(11)之间;
-写回电路(104),被配置为控制从高速缓存电路(102)向所述至后台存储器(12)的接口(11)的更新数据的写回,写回电路(104)被配置为检测与高速缓存行关联的连续地址范围内的多个连续地址子范围,所述子范围包含高速缓存行中的、在高速缓存电路(102)中更新数据可用的地址,所述子范围位于高速缓存行中的、在高速缓存电路(102)中无更新数据可用的地址之间,写回电路(104)被配置为选择性地引起向后台存储器(12)的针对所述子范围的数据的传输。
2.根据权利要求1所述的处理系统,其中,写回电路(104)被配置为将数据作为针对连续地址序列的存储器事务的一部分来传输,所述存储器事务指定了根据检测到的子范围而确定的序列的起始地址和结尾地址或者长度。
3.根据权利要求1所述的处理系统,包括用于表示所述子范围的子范围存储器或存储区(106),写回电路(104)被配置为监视在执行至高速缓存存储器(102)的写命令时由处理器核(100)传递的写地址,当接收到写地址时,将写地址中的每一个与子范围存储器或存储区(106)中可能存在的所表示的子范围相比较,并在每次写地址位于所表示的子范围外部时对子范围存储器(106)中的子范围进行扩展。
4.根据权利要求3所述的处理系统,包括子范围存储器(106)或存储区,每一个子范围存储器(106)或存储区针对高速缓存电路(102)的相应的集合和路。
5.根据权利要求3所述的处理系统,包括子范围存储器或存储区(106),每一个子范围存储器或存储区(106)针对相应的集合并且共同针对该集合中的所有路,每一个子范围存储器或存储区(106)用于表示针对相应集合的单个子范围,
写回电路(104)被配置为将针对该集合的子范围存储器或存储区分配给该集合中首先更新的路。
6.根据权利要求1所述的处理系统,包括关联子范围存储器或存储区(106),写回电路(104)被配置为在运行时间动态地创建在各个相应的子范围存储器或存储区与集合和路的各个相应的组合之间的关联。
7.根据权利要求1所述的处理系统,其中,写回电路(104)被配置为作为写回命令后处理器进行操作,该后处理器被配置为在接收到针对高速缓存行的写回命令以将高高速缓存行写回到后台存储器(12)时,根据指示了高速缓存行中各个相应地址是否已经更新的数据,来识别子范围。
8.根据权利要求1所述的处理系统,其中,写回电路(104)被配置为检测遭受如下条件的子范围:该子范围仅包含高速缓存行中的、在高速缓存电路(102)中更新数据可用的地址。
9.根据权利要求1所述的处理系统,其中,写回电路(104)被配置为当检测到在高速缓存行中在高速缓存电路(102)中更新数据可用的地址之间的、高速缓存行中在高速缓存电路(102)中无更新数据可用的地址时,将来自高速缓存行的更新数据字选择性地写回到后台存储器,
写回电路(104)被配置为将数据作为针对连续地址序列的存储器事务的一部分来传输,所述存储器事务指定了当子范围仅包含高速缓存行中的在高速缓存电路中更新数据可用的地址时根据检测到的子范围而确定的序列的起始地址和长度或者起始地址。
10.根据权利要求1所述的处理系统,其中,写回电路(104)被配置为将数据作为针对连续地址序列的存储器事务的一部分来传输,所述存储器事务指定了当子范围仅包含高速缓存行中的在高速缓存电路中更新数据可用的地址时根据检测到的子范围而确定的序列的起始地址和长度或者起始地址;
写回电路(104)被配置为通过针对高速缓存行中的在高速缓存电路中无更新数据可用的地址,从存储器加载数据并且将加载的数据与更新数据一起写回,来响应于检测到在高速缓存行中在高速缓存电路中更新数据可用的地址之间的、高速缓存行中在高速缓存电路中无更新数据可用的地址。
11.根据权利要求2所述的处理系统,其中,写回电路(104)被配置为检测相同高速缓存行内的多个子范围,连续地址范围内的多个连续地址中的每一个与所述相同高速缓存行相关联,每一个子范围只包含高速缓存行中的、在高速缓存电路中更新数据可用的地址,并且写回电路(104)被配置为使能针对每一个子范围的相应写事务。
12.一种采用电路处理数据的方法,所述电路包括处理器核(100)、后台存储器(12)、以及处理器核(100)与后台存储器(12)之间的高速缓存电路(102),所述方法包括:
-检测与高速缓存行关联的连续地址范围内的多个连续地址子范围,所述子范围包含高速缓存行中的、在高速缓存电路中更新数据可用的地址,所述子范围位于高速缓存行中的、在高速缓存电路中无更新数据可用的地址之间;
-向后台存储器(12)针对所述子范围选择性地传输数据。
13.根据权利要求12所述的方法,包括:将数据作为针对连续地址序列的存储器事务的一部分来传输,所述存储器事务指定了根据检测到的子范围而确定的序列的起始地址和长度或者结尾地址。
14.根据权利要求13所述的方法,其中,子范围只包含高速缓存行中的、在高速缓存电路中更新数据可用的地址,
当高速缓存行中的、在高速缓存电路中更新数据可用的地址之间存在无更新数据的间隙时,禁用针对所述子范围的传输。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP08158431.0 | 2008-06-17 | ||
EP08158431 | 2008-06-17 | ||
PCT/IB2009/052463 WO2009153707A1 (en) | 2008-06-17 | 2009-06-10 | Processing circuit with cache circuit and detection of runs of updated addresses in cache lines |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102067090A true CN102067090A (zh) | 2011-05-18 |
Family
ID=41037808
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009801228205A Pending CN102067090A (zh) | 2008-06-17 | 2009-06-10 | 具有高速缓存电路的处理电路,检测高速缓存行中更新地址的游程 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20110099337A1 (zh) |
EP (1) | EP2304572A1 (zh) |
CN (1) | CN102067090A (zh) |
WO (1) | WO2009153707A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808497A (zh) * | 2014-12-30 | 2016-07-27 | 华为技术有限公司 | 一种数据处理方法 |
CN112101541A (zh) * | 2019-06-18 | 2020-12-18 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法、集成电路装置、板卡和计算装置 |
CN114297100A (zh) * | 2021-12-28 | 2022-04-08 | 摩尔线程智能科技(北京)有限责任公司 | 用于缓存的写策略调整方法、缓存装置及计算设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2304571A1 (en) * | 2008-06-17 | 2011-04-06 | Nxp B.V. | Multiprocessor system with mixed software hardware controlled cache management |
WO2012032666A2 (en) * | 2010-09-06 | 2012-03-15 | Nec Corporation | Information processing device and information processing method |
US9141543B1 (en) * | 2012-01-06 | 2015-09-22 | Marvell International Ltd. | Systems and methods for writing data from a caching agent to main memory according to a pre-clean criterion |
WO2014158156A1 (en) * | 2013-03-28 | 2014-10-02 | Hewlett-Packard Development Company, L.P. | Storing data from cache lines to main memory based on memory addresses |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1182563A1 (en) * | 2000-08-21 | 2002-02-27 | Texas Instruments France | Cache with DMA and dirty bits |
US6427184B1 (en) * | 1997-06-03 | 2002-07-30 | Nec Corporation | Disk drive with prefetch and writeback algorithm for sequential and nearly sequential input/output streams |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5467460A (en) * | 1990-02-14 | 1995-11-14 | Intel Corporation | M&A for minimizing data transfer to main memory from a writeback cache during a cache miss |
US5623633A (en) * | 1993-07-27 | 1997-04-22 | Dell Usa, L.P. | Cache-based computer system employing a snoop control circuit with write-back suppression |
EP0683457A1 (en) * | 1994-05-20 | 1995-11-22 | Advanced Micro Devices, Inc. | A computer system including a snoop control circuit |
US5920891A (en) * | 1996-05-20 | 1999-07-06 | Advanced Micro Devices, Inc. | Architecture and method for controlling a cache memory |
FR2778254B1 (fr) * | 1998-04-29 | 2002-02-15 | Texas Instruments France | Circuits,systemes et procedes d'ordinateur utilisant un nettoyage partiel d'une memoire cache |
US6119205A (en) * | 1997-12-22 | 2000-09-12 | Sun Microsystems, Inc. | Speculative cache line write backs to avoid hotspots |
DE10022851A1 (de) | 2000-05-10 | 2001-11-22 | Streuber Sulo Eisenwerk F | Behälter mit Korpus und Deckel |
US6720969B2 (en) * | 2001-05-18 | 2004-04-13 | Sun Microsystems, Inc. | Dirty tag bits for 3D-RAM SRAM |
JP4434534B2 (ja) * | 2001-09-27 | 2010-03-17 | 株式会社東芝 | プロセッサ・システム |
US7203798B2 (en) * | 2003-03-20 | 2007-04-10 | Matsushita Electric Industrial Co., Ltd. | Data memory cache unit and data memory cache system |
US7162584B2 (en) * | 2003-12-29 | 2007-01-09 | Intel Corporation | Mechanism to include hints within compressed data |
JP2009053820A (ja) * | 2007-08-24 | 2009-03-12 | Nec Electronics Corp | 階層型キャッシュメモリシステム |
-
2009
- 2009-06-10 WO PCT/IB2009/052463 patent/WO2009153707A1/en active Application Filing
- 2009-06-10 CN CN2009801228205A patent/CN102067090A/zh active Pending
- 2009-06-10 US US12/999,542 patent/US20110099337A1/en not_active Abandoned
- 2009-06-10 EP EP09766244A patent/EP2304572A1/en not_active Withdrawn
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6427184B1 (en) * | 1997-06-03 | 2002-07-30 | Nec Corporation | Disk drive with prefetch and writeback algorithm for sequential and nearly sequential input/output streams |
EP1182563A1 (en) * | 2000-08-21 | 2002-02-27 | Texas Instruments France | Cache with DMA and dirty bits |
Non-Patent Citations (1)
Title |
---|
IBM CORP.: "SELECTIVE WRITE BACK CACHE REPLACEMENT STRATEGY", 《IBM TECHNICAL DISCLOSURE BULLETIN》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105808497A (zh) * | 2014-12-30 | 2016-07-27 | 华为技术有限公司 | 一种数据处理方法 |
CN105808497B (zh) * | 2014-12-30 | 2018-09-21 | 华为技术有限公司 | 一种数据处理方法 |
CN112101541A (zh) * | 2019-06-18 | 2020-12-18 | 上海寒武纪信息科技有限公司 | 数据处理装置、方法、集成电路装置、板卡和计算装置 |
CN112101541B (zh) * | 2019-06-18 | 2023-01-17 | 上海寒武纪信息科技有限公司 | 对高位宽值数据进行拆分的装置、方法、芯片及板卡 |
CN114297100A (zh) * | 2021-12-28 | 2022-04-08 | 摩尔线程智能科技(北京)有限责任公司 | 用于缓存的写策略调整方法、缓存装置及计算设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2009153707A1 (en) | 2009-12-23 |
US20110099337A1 (en) | 2011-04-28 |
EP2304572A1 (en) | 2011-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9286221B1 (en) | Heterogeneous memory system | |
KR100593582B1 (ko) | 캐시 메모리에서의 프리페치 관리 장치 | |
US6782454B1 (en) | System and method for pre-fetching for pointer linked data structures | |
JP4837456B2 (ja) | 情報処理装置 | |
CN102067090A (zh) | 具有高速缓存电路的处理电路,检测高速缓存行中更新地址的游程 | |
US9612972B2 (en) | Apparatuses and methods for pre-fetching and write-back for a segmented cache memory | |
US20110072218A1 (en) | Prefetch promotion mechanism to reduce cache pollution | |
US20180300258A1 (en) | Access rank aware cache replacement policy | |
CN102063943A (zh) | Nand闪存参数自动检测系统 | |
CN102968386B (zh) | 数据供给设备、缓存设备及数据供给方法 | |
CN102713826A (zh) | 经由位图的树表示分配文件存储的方法和设备 | |
CN101369247A (zh) | 创建存储器缺陷映射表并使用该映射表优化性能的方法 | |
US6950909B2 (en) | System and method for reducing contention in a multi-sectored cache | |
US8438339B2 (en) | Cache management for a number of threads | |
JP2007200292A (ja) | エントリの時間経過によるキャッシュ・エントリの所有権喪失 | |
US20240152454A1 (en) | Cache management method, solid state drive controller and solid state drive | |
US20180081814A1 (en) | Quality of cache management in a computer | |
US7925857B2 (en) | Method for increasing cache directory associativity classes via efficient tag bit reclaimation | |
CN110442533A (zh) | 一种提高访问性能的方法、设备及存储介质 | |
US9262325B1 (en) | Heterogeneous memory system | |
JP2004199677A (ja) | キャッシュを動作させるためのシステム及び方法 | |
CN101930344B (zh) | 确定链接数据储存器中存储和重写的项目的数据存储协议 | |
US9507725B2 (en) | Store forwarding for data caches | |
JP2000194596A (ja) | メモリ制御装置、キャッシュ装置、メモリ制御システムおよび方法、記録媒体 | |
JP4834362B2 (ja) | メモリ制御装置。 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20110518 |