将数据写入数据处理系统内的系统存储器技术方案

技术编号:8131043 阅读:223 留言:0更新日期:2012-12-27 03:12
本公开涉及将数据写入数据处理系统内的系统存储器。公开了一种方法,该方法包括:存储与缓存行关联的状态指示符,其中缓存行是各自与系统存储器(30)的区域的相应的独特部分关联的多个缓存行(42)之一。状态指示符包括未清理指示用于指出缓存行是用于将存储于缓存行内的数据写入系统存储器的区域的关联部分的候选者。状态指示符是各自与相应的缓存行关联的多个状态指示符之一。为系统存储器的区域确定包括未清理指示的该多个状态指示符的数量,并且如果超过了阈值,则将存储于所选缓存行内的数据写入系统存储器的区域的关联部分,并且将清理指示存储于与缓存行对应的状态指示符内。

【技术实现步骤摘要】
将数据写入数据处理系统内的系统存储器的方法和系统
本公开内容一般地涉及数据处理系统,并且更特别地,涉及将数据回写到数据处理系统内的系统存储器。
技术介绍
在多个处理器正访问共用的系统存储器的典型的多处理器系统中,数据以时间交替的方式写入存储器。这可能导致非最优的性能。例如,在双倍数据率(DDR)存储器的情形中,每当数据被写入存储体(memorybank)的不同页时,必须执行附加的页打开(page-open)和页关闭(page-close),从而降低了整体系统性能。
技术实现思路
在一个实施例中,本专利技术提供了一种将数据写入数据处理系统内的系统存储器的方法。该方法包括:将与缓存行关联的状态指示符存储于与系统存储器的区域关联的跟踪条目内。其中所述缓存行是各自与系统存储器的所述区域的相应的独特部分关联的多个缓存行之一,其中所述多个缓存行包括N个缓存行,其中N是存储系统存储器的全部所述区域所需的缓存行的数量。所述状态指示符是各自与所述多个缓存行中的相应的缓存行关联的多个状态指示符之一,使得所述多个缓存行中的每个缓存行具有所述多个状态指示符中的相关的状态指示符。所述跟踪条目包括:所述多个状态指示符中的每一个,其中每个状态指示符包括:在相关的缓存行是用于将存储于所述缓存行内的数据写入系统存储器的所述区域的所述关联部分的候选者时的未清理指示,以及在相关的缓存行不是用于将存储于所述缓存行内的数据写入系统存储器的所述区域的所述关联部分的候选者时的清理指示。该方法还包括:确定系统存储器的所述区域包括的所述未清理指示的所述多个状态指示符的数量,以及如果所确定的未清理指示的数量超过了阈值,则选择缓存行,将所述存储于所述缓存行内的数据写入系统存储器的所述区域的所述关联部分,以及将清理指示存储于与所述缓存行对应的所述状态指示符内,其中所述清理指示识别出所述缓存行不是用于将存储于所述缓存行内的数据写入系统存储器的所述区域的所述关联部分的候选者。附图说明本专利技术通过实例的方式来说明,并且不受附图所限定,在附图中相似的参考符号指示相似的元件。附图中的元件仅出于简单和清晰起见而示出,而不一定按比例绘制。图1以框图形式示出了根据本专利技术的一个实施例的数据处理系统。图2以框图形式示出了根据本专利技术的一个实施例的图1的系统存储器。图3以框图形式示出了根据本专利技术的一个实施例的图1的系统缓存(cache)。图4以框图形式示出了根据本专利技术的一个实施例的图1的缓存清理电路。图5以图表形式示出了根据本专利技术的一个实施例的在图1的数据处理系统内所提供的访问地址。图6以图表形式示出了根据本专利技术的一个实施例的图1的缓存清理电路的跟踪条目。图7以流程图形式示出了根据本专利技术的一个实施例的用于更新图1的缓存清理电路的方法。图8以流程图形式示出了根据本专利技术的一个实施例的用于执行缓存清理的方法。具体实施方式对存储器的同一区域的存储访问可以帮助减少由于必须连续地访问不同的区域所引起的延迟。例如,在DDR存储器的情形中,每当发生必须关闭当前行并且激活或打开新的行的行冲突时,延迟由于行的每次关闭和打开而产生。因此,在一个实施例中,对系统存储器的区域的存储访问被跟踪以确定与存储器的同一区域对应的未清理缓存行(dirtycacheline)的数量何时已达到预定的阈值。在达到该阈值时,那些与同一区域对应的未清理缓存行能够通过将所更新的缓存数据写入系统存储器来清理。由于这些未清理的缓存行对应于同一区域,因而在执行清理时不需要新区域的连续的关闭和打开。因此,虽然延迟可以由用于清理与同一区域对应的一组未清理缓存行的清理过程的第一次访问所引起,但是该清理过程的后续访问不会引起额外的延迟。以这种方式,可以提高系统的性能。如同在此所使用的,术语“总线”用来指代可以用来传输一种或更多种不同类型的信息(例如,数据、地址、控制或状态)的多个信号或导线(conductor)。在此所讨论的导线可以根据作为单一导线、多根导线、单向导线或双向导线来说明或描述。但是,不同的实施例可以改变导线的实现方式。例如,可以使用分离的单向导线而不是双向导线,反之亦然。此外,多根导线可以用串行地或者以时分多路复用的方式传输多个信号的单一导线来代替。类似地,用于传送多个信号的单一导线可以分离成用于传送这些信号的子集的各个不同的导线。因此,在传输信号方面存在着多种选择。本文中在提及使信号、状态位或类似的装置分别变为其逻辑真或逻辑假的状态时使用术语“确证(assert)”或“置位(set)”及“置否(negate)”(或者“取消确证(deassert)”或“清零(clear)”)。如果逻辑真状态是逻辑电平1,则逻辑假状态是逻辑电平0。以及如果逻辑真状态是逻辑电平0,则逻辑假状态是逻辑电平1。在图1中以框图形式示出的是数据处理系统10,该数据处理系统10具有处理器12、处理器16、系统互连20、外设22、缓存清理电路24、系统缓存26、存储控制器28及系统存储器30。处理器12、处理器16、外设22、缓存清理电路24及系统缓存26各自与系统互连20双向耦接。除了系统互连20外,系统缓存26还经由导线25与缓存清理电路24双向耦接。存储控制器28与系统缓存26和系统存储器30中的每个都双向耦接。数据处理系统10可以仅包括一个处理器,例如,处理器12,或者可以包括任意多个处理器。外设22可以包括任何数量的及任何类型的外设,或者作为选择,数据处理系统10可以不包括任何其他外设。处理器12和16每个还可以包括它自己专用的缓存,分别如缓存14和18。系统互连是全局互连。在一种形式中,它是系统总线。但是,其他形式的互连也可以使用,例如,互连结构、交叉开关、点对点连接等。在操作中,与系统互连20耦接的多个主设备(master),例如,处理器12和16或外设22,可以访问系统存储器30以读取及写入数据。对系统存储器30的访问受存储控制器28所控制并且由系统缓存26来选通。也就是说,在所示出的实施例中,对系统存储器30的访问首先经由系统缓存26来提供。在一个实施例中,缓存清理电路24监控由这些主设备执行的对系统存储器30的写入,并且基于该监控来确定何时能够执行系统缓存26的刷新(flush)或清理。也就是说,不是等待系统缓存26的刷新或清理根据它自己的缓存分配策略来进行,而是缓存清理电路24可以基于对系统存储器30的访问的跟踪来确定某些缓存行的刷新或清理应当在它根据缓存分配策略而定的发生时间之前发生。在一种可替换的实施例中,系统缓存26可以不存在,使得写入经由系统控制器28直接对系统存储器30进行。在这种情况下,缓存清理电路24监控由主设备对系统存储器30执行的写入,并且基于该监控来确定何时能够执行缓存14或18的刷新或清理。系统存储器30可以是可经由系统互连20来访问的任意类型的系统存储器。在一个实施例中,系统存储器30是双倍数据率(DDR)存储器。例如,图2以框图形式示出了作为DDR存储器的系统存储器30。图2所示出的DDR存储器包括存储器的8个存储体(bank),存储体0-存储体7。每个存储体都包括相应的行缓冲器以及相应的用于存储N行数据的存储器阵列(memoryarray)。例如,存储体0包括行缓冲器0和存储器阵列0,存储体1包括行缓冲器本文档来自技高网...
将数据写入数据处理系统内的系统存储器

【技术保护点】
一种方法,包括存储与缓存行关联的状态指示符,其中所述缓存行是各自与系统存储器的区域的相应的独特部分关联的多个缓存行之一,所述状态指示符包括未清理指示,所述未清理指示用于指出所述缓存行是用于将存储于所述缓存行内的数据写入系统存储器的所述区域的所述关联部分的候选者,并且所述状态指示符是各自与相应的缓存行关联的多个状态指示符之一;对于系统存储器的所述区域确定包括所述未清理指示的所述多个状态指示符的数量;以及如果所确定的未清理指示的数量超过了阈值,则选择缓存行,将所述存储于所述缓存行内的数据写入系统存储器的所述区域的所述关联部分,以及将清理指示存储于与所述缓存行对应的所述状态指示符内,其中所述清理指示识别出所述缓存行不是用于将存储于所述缓存行内的数据写入系统存储器的所述区域的所述关联部分的候选者。

【技术特征摘要】
2011.06.10 US 13/157,5491.一种数据处理方法,包括存储与缓存行关联的状态指示符,其中将所述状态指示符存储于与系统存储器的区域关联的跟踪条目内,其中所述缓存行是各自与系统存储器的所述区域的相应的独特部分关联的多个缓存行之一,其中所述多个缓存行包括N个缓存行,其中N是存储系统存储器的全部所述区域所需的缓存行的数量,所述状态指示符是各自与所述多个缓存行中的相应的缓存行关联的多个状态指示符之一,使得所述多个缓存行中的每个缓存行具有所述多个状态指示符中的相关的状态指示符;并且所述跟踪条目包括:所述多个状态指示符中的每一个,其中每个状态指示符包括:在相关的缓存行是用于将存储于所述缓存行内的数据写入系统存储器的所述区域的所述关联部分的候选者时的未清理指示,以及在相关的缓存行不是用于将存储于所述缓存行内的数据写入系统存储器的所述区域的所述关联部分的候选者时的清理指示,对于系统存储器的所述区域确定包括所述未清理指示的所述多个状态指示符的数量;以及如果所确定的未清理指示的数量超过了阈值,则选择缓存行,将所述存储于所述缓存行内的数据写入系统存储器的所述区域的所述关联部分,以及将清理指示存储于与所述缓存行对应的所述状态指示符内,其中所述清理指示识别出所述缓存行不是用于将存储于所述缓存行内的数据写入系统存储器的所述区域的所述关联部分的候选者。2.根据权利要求1所述的方法,还包括:如果所确定的未清理指示的数量超过了所述阈值,执行所述选择所述缓存行,所述将存储于所述缓存行内的所述数据写入,以及存储与系统存储器的所述区域关联的所选数量的缓存行的清理指示,所选数量的缓存行中的每个都具有包括所述未清理指示的关联的状态指示符。3.根据权利要求1所述的方法,还包括:将所述跟踪条目存储于跟踪阵列内,其中所述跟踪阵列包括多个跟踪条目,以及所述多个跟踪条目中的每一个都与系统存储器的独特区域关联。4.根据权利要求1所述的方法,其中各自对应于若干处理器的若干处理器缓冲存储器和系统缓冲存储器中的一个或更多个包括所述多个缓存行。5.一种数据处理系统,包括:一个或更多个主设备,每个主设备包括处理器或外围设备之一;系统存储器,包括多个系统存储体,其中每个系统存储体包括多个独特行,并且每个独特行对应于所述系统存储器的区域;一个或更多个缓冲存储器,与所述一个或更多个主设备耦接,并且存储多个缓存行,其中每个缓存行与所述多个独特行中的一个独特行的相应的独特部分关联,每个缓存行被配置用于存储与所述独特行的所述相应的独特部分关联的数据,以由所述一个或更多个主设备访问,并且所述一个或更多个缓冲存储器在主设备包括处理器时包括与相应的处理器关联的系统缓存中的一个或更多个或专用缓...

【专利技术属性】
技术研发人员:B·C·格雷森W·T·钱戈瓦柴
申请(专利权)人:飞思卡尔半导体公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1