共享替换策略计算机高速缓存系统和方法与流程

文档序号:15686116发布日期:2018-10-16 21:04阅读:254来源:国知局

本申请要求于2017年3月27日提交的待审美国临时专利申请no.62/477,412的权益,该申请以引用方式并入本文中。

本公开涉及数字高速缓存,并且更具体地说,涉及具有存储的替换信息的窥探过滤器,以及包括牺牲品独占高速缓存和窥探过滤器共享替换策略的相关方法和系统。



背景技术:

通常将中央处理单元(cpu)中的最后一级高速缓存(llc)的大小设置为保存最近存储器访问的几兆字节(mb)数据或指令行,从而与动态随机存取存储器(dram)相比,降低来自cpu自身请求的延迟。尽管这种高速缓存相对于cpu内部的1级(l1)高速缓存或2级(l2)高速缓存较大,但llc(特别是在多个cpu之间共享的llc)接收/发送来自多个线程的所有存储器流量,这会很快地填满该高速缓存。当高速缓存填满容量并为了最大性能需要选择牺牲的数据和保持的数据时,通常应用高速缓存替换策略或方法。

llc或共享高速缓存可为包容性的或独占的。独占共享高速缓存有时被称作牺牲品高速缓存。包容性高速缓存是这样一种高速缓存,其中将由主cpu保持的各个数据或指令行以冗余方式拷贝在高速缓存自身中。跟踪高速缓存行的冗余拷贝以及标签状态允许实现这样一种隐含的零成本窥探过滤器,其中任何外部存储器请求或探查和/或探测可通过llc本身过滤和服务,从而减少到主cpu的存储器流量。高速缓存行是与高速缓存条目关联的一组数据。

与包容性高速缓存相反,牺牲品独占高速缓存是这样一种高速缓存,其中只有在主cpu牺牲掉(即,弹出)一个高速缓存行之后才发生数据存储。牺牲品独占高速缓存不保持其主cpu的数据行。这样,通过不用冗余数据污染llc条目,提供了更有效的唯一本地高速缓存存储,代价是存储器探查和/或探测增加并且一致性流复杂度更大。牺牲品独占高速缓存通常添加专用窥探过滤器来跟踪存在于主cpu而不是高速缓存中的高速缓存行的一致性状态,以恢复到主cpu的存储器流量的减小。窥探过滤器是跟踪高速缓存行的元状态(而不是它们的数据有效负载)的llc存储。这样有助于减少牺牲品llc或者没有本地高速缓存的结构(fabric)的流量问题。

通常,高速缓存替换策略应用于包容性高速缓存,并且较少用于牺牲品独占高速缓存。牺牲品独占高速缓存具有这样的定义,即,当高速缓存行被主cpu重新引用时取消分配该高速缓存行,这对于尝试跟踪历史的高速缓存替换策略不利。



技术实现要素:

实施例包括一种共享替换策略计算机高速缓存系统。所述系统可包括主处理器、以通信方式连接至主处理器的牺牲品独占最后一级高速缓存(llc)和以通信方式连接至牺牲品独占llc和主处理器的窥探过滤器。窥探过滤器被构造为存储替换信息。系统可包括替换状态机,其被构造为管理牺牲品独占llc与具有存储的替换信息的窥探过滤器之间的替换操作。

本发明的系统和方法的实施例利用窥探过滤器提供牺牲品独占高速缓存中的高速缓存替换,在重新引用回cpu时在窥探过滤器中不丢失替换信息。替换信息存储在窥探过滤器中,这表示,可完全保存历史访问数据。本发明的系统和方法还包括窥探过滤器替换技术。当事务将高速缓存行移进移出主cpu时,本发明的系统和方法在窥探过滤器与牺牲品独占高速缓存(例如,llc)之间传递替换信息。这样保持和发展了在读操作时针对从牺牲品独占高速缓存去除的高速缓存行的现有替换信息,以及智能地替换窥探过滤器中的高速缓存行并使其变旧。

附图说明

通过以下结合附图的详细描述,本发明原理的以上和其它特征和优点将变得更清楚,其中:

图1a是根据一些实施例的主cpu、存储有替换信息的窥探过滤器、和关联的牺牲品独占最后一级高速缓存(llc)的示例框图;

图1b是根据一些实施例的存储有替换信息的窥探过滤器和关联的牺牲品独占llc的示例状态图;

图2是根据一些实施例的存储有替换信息的窥探过滤器和用于管理cpu读的关联的牺牲品独占llc的示例方框和流程图;

图3是示出根据一些实施例的用于管理存储有替换信息的窥探过滤器和用于cpu读的关联的牺牲品独占llc的技术的示例流程图;

图4是根据一些实施例的存储有替换信息的窥探过滤器和用于管理cpu写的关联的牺牲品独占llc的示例方框和流程图;

图5是示出根据一些实施例的用于管理存储有替换信息的窥探过滤器和用于cpu回写的关联的牺牲品独占llc的技术的流程图;

图6是根据一些实施例的存储有替换信息的窥探过滤器和关联的牺牲品独占llc的另一示例状态图;

图7是根据一些实施例的存储有替换信息的窥探过滤器和关联的牺牲品独占llc的另一示例状态图;

图8是根据一些实施例的包括存储有替换信息的窥探过滤器和关联的牺牲品独占llc的计算机系统的示例框图;

图9是根据一些实施例的包括存储有替换信息的窥探过滤器和关联的牺牲品独占llc的示例智能电话;

图10是根据一些实施例的包括存储有替换信息的窥探过滤器和关联的牺牲品独占llc的示例智能平板;

图11是根据一些实施例的包括存储有替换信息的窥探过滤器和关联的牺牲品独占llc的示例笔记本计算机;以及

图12是根据一些实施例的包括存储有替换信息的窥探过滤器和关联的牺牲品独占llc的示例台式计算机。

具体实施方式

现在,将详细描述各个实施例,其示例在附图中示出。在下面的详细描述中,阐述了多个特定细节以能够彻底理解实施例。然而,应该理解,本领域普通技术人员可在不需要这些特定细节的情况下实施所述实施例,未详细描述公知的方法、工序、组件、电路和网络,以避免使得实施例的各方面不必要地模糊。

应该理解,虽然本文中可使用术语第一、第二等来描述各种元件,但是这些元件不应被这些术语限制。这些术语仅用于将一个元件与另一元件区分开。例如,第一高速缓存可被称作第二高速缓存,并且相似地,第二高速缓存可被称作第一高速缓存,而不脱离实施例的范围。

本文的实施例的描述中使用的术语仅用于描述特定实施例的目的,而不旨在限制实施例。如实施例和权利要求的描述中所用,除非上下文清楚地指明不是这样,否则单数形式“一”、“一个”和“该”也旨在包括复数形式。还应该理解,本文所用的术语“和/或”指和包括相关所列项之一或多个的任何和所有组合。还应该理解,术语“包括”和/或“包括……的”当用于本说明书中时,指明存在所列特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其它特征、整体、步骤、操作、元件、组件和/或它们的组。附图的组件和特征不一定按照比例绘制。

本发明的系统和方法的实施例利用窥探过滤器提供牺牲品独占高速缓存中的高速缓存替换,在重新引用回cpu的过程中不丢失替换信息。它可按照多种形式存在,包括命中优先级、频率优先级和/或支持伪包容性或弱独占。替换信息存储在窥探过滤器中,这表示,可完全保存历史访问数据,并且允许llc再插入点具有更大的灵活性,而不用在l2高速缓存中存储额外比特。本发明的系统和方法还包括窥探过滤器替换技术。当事务将高速缓存行移进移出主cpu时,本发明的系统和方法在窥探过滤器与牺牲品独占高速缓存(例如,llc)之间传递替换信息。这样保持和发展了在读操作时针对从牺牲品独占高速缓存去除的高速缓存行的现有替换信息,以及智能地替换窥探过滤器中的高速缓存行并使其变旧。

图1a是根据一些实施例的包括主cpu103、存储有替换信息的窥探过滤器105、关联的牺牲品独占最后一级高速缓存(llc)110和替换状态机112的系统100的示例框图。图1b是根据一些实施例的存储有替换信息的窥探过滤器105和关联的牺牲品独占llc110的示例状态图102。现在将参照图1a和图1b进行描述。

可利用存储有替换信息的窥探过滤器105和关联的牺牲品独占llc110实施高速缓存替换策略。图1b示出了特定高速缓存替换策略,其可被称之为替换状态机112的频率优先级形式,其中在llc中命中的任何读使替换跟踪值增加1。

例如,针对llc跟踪最近最少使用(lru)+1的读操作提升至最近使用(mru)-1的替换状态,如线条115所示。通过定义,对于诸如llc110的牺牲品独占高速缓存的读操作从高速缓存自身中去除了高速缓存行,并且将其向上传递至请求的主cpu103。在此方案中,将标签125和/或替换信息130传递至窥探过滤器105而不是传递高速缓存行数据本身。标签125可包括诸如地址、修改/自有/排除/共享/无效(moesi)等的高速缓存行的元数据。替换信息130可包括诸如lru状态的存储的状态和替换次序的元数据。另外,将对于被窥探过滤器105跟踪的主cpu103的写操作分配至llc110中。根据一个实施例,窥探过滤器105存储标签125和/或替换信息130,作为写入llc存储机制(例如,llc110)的数据。

图2是根据一些实施例的存储有替换信息的窥探过滤器105和用于管理cpu读的关联的牺牲品独占llc110的示例方框和流程图200。现在,参照图1a、图1b和图2。

根据一个实施例,当窥探过滤器105的存储或llc110的存储变满时,本发明的替换状态机112起作用。与包容性高速缓存不同,当读或写使高速缓存行在牺牲品独占高速缓存(例如,110)与窥探过滤器(例如,105)之间移动时,牺牲品独占高速缓存(例如,110)和专用窥探过滤器(例如,105)二者均使它们的条目无效。

在这种情况下,针对高速缓存行‘a’的请求存储在llc110中。根据独占/牺牲品高速缓存的定义,llc110在高速缓存命中时解析(resolve),并且随后针对请求的主cpu103读出数据,使得高速缓存行‘a’原来所在的llc条目205为无效。将包括标签125和/或替换信息130的元信息传递至专用窥探过滤器105,从而过滤针对高速缓存行的未来探查/探测并且保持关于高速缓存行的当前替换优先级信息。

如果窥探过滤器105未满负荷运行,则迁移高速缓存行‘a’进入窥探过滤器105中的无效空间(未示出),并且完成事务。然而,如果窥探过滤器105充满了跟踪的高速缓存行信息,则窥探过滤器105需要作出替换决定。

根据一个实施例,窥探过滤器105使用替换状态机112来确定牺牲品选择(例如,条目‘y’),从窥探过滤器105中牺牲掉该条目,并且将该条目替换为关于递送的读‘a’的新信息。由于牺牲品来自窥探过滤器105而非llc高速缓存110,系统逻辑从主cpu103探查/探测被牺牲的跟踪高速缓存行‘y’,并且将信息分配至llc110中,如图1b中的140所示。

图3是示出根据一些实施例的用于管理存储有替换信息的窥探过滤器105和用于cpu读的关联的牺牲品独占llc110的技术的示例流程图300。

在305,开始cpu读操作。在315,本发明的系统确定llc110中是否存在高速缓存命中。如果在llc110中存在高速缓存命中,则在320从llc110中读出高速缓存行和标签信息125。在325,替换信息130可提升,或者转移至窥探过滤器105和被窥探过滤器105存储。如果在315不存在llc高速缓存命中,则在330中,从dram取出高速缓存行,并且针对这种来自dram的填充,向对应的窥探过滤器条目分配替换信息(例如,lru+1)。

在335,本发明的系统确定窥探过滤器105中的槽是否为无效的。如果在335不存在无效槽(例如,没有无效条目),则在340牺牲窥探过滤器105中的预选择条目。在345,本发明的系统将干净的无效探查/探测发送至主cpu103。在350,cpu探查/探测通过高速缓存行返回。在355,本发明的系统在llc110中分配条目,并且将条目设为最近最少使用(lru)。

如果在335窥探过滤器105中有无效槽,则在360本发明的系统将高速缓存行递送至主cpu103。在365,本发明的系统在窥探过滤器105中分配标签125和/或替换信息130。在370,本发明的系统确定窥探过滤器105中的槽是否为无效的。如果在370窥探过滤器105中的槽为无效的,则本发明的系统在375选择和存储下一窥探过滤器牺牲品槽。如果在370在窥探过滤器105中不存在无效槽,则在380,本发明的系统在找到lru之前使窥探过滤器替换信息130变旧。

图4是根据一些实施例的存储有替换信息的窥探过滤器105和用于管理cpu写操作的关联的牺牲品独占llc110的示例方框和流程图400。

对于高速缓存行‘x’的全数据回写可来自跟踪的cpu103。窥探过滤器105中的控制逻辑可确定高速缓存行信息,随后读出包括将被传递至llc110的标签125和替换信息130的元信息,使得窥探过滤器105中的条目405为无效的。换句话说,窥探过滤器105可将标签125和替换信息130传递至llc110。与以上参照图2描述的cpu读请求相似,如果llc110具有可用的无效条目(未示出),则cpu写事务将数据、标签125和替换信息130分配至可用槽中。然而,如果llc110满负荷(如图4所示),则llc110在分配新高速缓存行‘x’之前需要选择和读出牺牲品(例如,事务‘d’)。

图5是示出根据一些实施例的用于管理存储有替换信息的窥探过滤器和用于cpu回写的关联的牺牲品独占llc110的技术的流程图500。

在505,开始cpu回写。在510,本发明的系统从窥探过滤器105读出高速缓存行(例如‘a’)、标签(例如125)和替换信息(例如130)。在515,本发明的系统确定在llc110中是否存在无效槽。在515,如果在llc110中不存在无效槽,则在520,本发明的系统针对dram牺牲预选择的llc牺牲品。在515,如果在llc110中存在无效槽,则在525,本发明的系统525将高速缓存行、标签和替换信息写至llc110。

在530,本发明的系统确定在llc110中槽(例如,条目)是否是无效的。在530,如果在llc110中槽不是无效的,则在535,本发明的系统在找到lru之前使llc替换信息变旧。在530,如果在llc110中槽是无效的,则在540,本发明的系统选择和存储下一llc牺牲品槽。在不脱离本发明的系统的发明范围的情况下,可调整以上频率优先级替换状态机的插入点、值和提升向量。

图6是根据一些实施例的存储有替换信息的窥探过滤器105和关联的牺牲品独占llc110的另一示例状态图600。

在一些实施例中,利用命中优先级替换的llc将来自llc110的任何读数据都直接提升至窥探过滤器105中的mru条目,如通过线条605、610和615示出的。在一些实施例中,如上面详细讨论的,标签125和/或替换信息130从llc110提升至窥探过滤器105,但是在这种情况下,提升至窥探过滤器105中的mru。可根据需要移动或实施针对填充620、窥探过滤器牺牲品625、预取630甚至指令与数据高速缓存的插入值的调整。

图7是根据一些实施例的存储有替换信息的窥探过滤器105和关联的牺牲品独占llc110的又一示例状态图700。

高速缓存行的本质和牺牲品独占llc110中的状态跟踪可导致图7所示的更复杂的状态机。根据一个实施例,使用在牺牲品独占llc110中存活的选择包容性高速缓存行,允许在多个cpu或主cpu(例如,103)之间共享的行的优点,即一种对特定情况更好地起作用的技术,以及在cpu写操作中不使来自主cpu103的高速缓存行无效的优点。利用这种修改的定义的系统可调整替换状态机112以增加命中或者频率优先级。

根据一个实施例,本发明的系统和方法针对牺牲品独占llc110提供了一种高速缓存替换策略,通过跟踪非常驻在牺牲品独占llc110中的高速缓存行的窥探过滤器105来回传递信息来保持全部的再参照历史。高速缓存替换策略的变型形式可基于命中或频率指标优先处理提升。高速缓存替换策略的变型形式通过在牺牲品独占llc110或窥探过滤器105内提升来允许伪包容性或弱独占高速缓存支持。

根据一个实施例,本发明的系统和方法利用存储有替换信息的窥探过滤器105提供牺牲品独占llc110中的高速缓存替换。针对cpu读请求(对于高速缓存行的请求被存储在独占/牺牲品llc110中),当窥探过滤器105满负荷运行时,本发明的系统可从窥探过滤器105中牺牲掉条目,如715所示。而且,本发明的系统可将用于高速缓存行的标签125和替换信息130分配至窥探过滤器105中,并且将高速缓存行递送至cpu103。针对cpu写请求(写至高速缓存行的数据是来自cpu103的),本发明的系统可(i)从窥探过滤器105中读高速缓存行的标签125和替换信息130;(ii)将标签125和替换信息130从窥探过滤器105移动至独占/牺牲品llc110;并且(iii)如果独占/牺牲品llc110满负荷,则在分配高速缓存行之前,通过独占/牺牲品llc110从独占/牺牲品llc110中读出牺牲品,如720所示。

图7所示的虚线箭头代表独占读操作(即,唯一并且当cpu_id=0时)。图7所示的虚线/点线箭头代表包容性读操作(即,在多cpu系统中,共享或者cpu_id=1或大于1)。换句话说,从窥探过滤器105至伪独占llc110中的mru条目的读命令可包括于多个处理器中。如果高速缓存行被包括在llc110中,则可从主cpu103中将其驱逐,并且在这种情况下,因为被包括llc中意味着高速缓存行数据已在llc110中,所以不需要针对llc110的写操作。

图8是根据一些实施例的计算机系统800的示例框图,其包括系统100的存储有替换信息的窥探过滤器105、关联的牺牲品独占llc110、主cpu103和替换状态机112。

参照图8,计算系统800还可包括时钟810、随机存取存储器(ram)815、用户接口820、诸如基频芯片集的调制解调器825、固态驱动器/盘(ssd)840、存储器控制器845和/或电池835,它们中的任一个或全部可电连接至系统总线805。包括存储有替换信息的窥探过滤器105和关联的牺牲品独占llc110的系统100可对应于上面详细描述的那些实施例,并且也可电连接至系统总线805。

如果计算系统800是移动装置,则电池835可为计算系统800供电。虽然图8中未示出,但是计算系统800还可包括应用芯片集、相机图像处理器(cis)、移动dram等。

在示例实施例中,可将计算系统800用作计算机、计算机服务器、服务器机架、便携式计算机、超级移动pc(umpc)、工作站、上网本、pda、网络平板、无线电话、移动电话、智能电话、电子书、pmp(便携式多媒体播放器)、数字相机、数字音频记录仪/播放器、数字图片/视频记录仪/播放器、便携式游戏机、导航系统、黑匣子、3维电视、能够在无线环境下发送和接收信息的装置、构成家庭网络的各种电子装置之一、构成计算机网络的各种电子装置之一、构成信息通信网络的各种电子装置之一、rfid、或者构成计算系统的各种电子装置之一。

图9是根据一些实施例的包括系统100的示例智能电话905。

图10是根据一些实施例的包括系统100的示例智能平板1005。

图11是根据一些实施例的包括系统100的示例笔记本计算机1105。

图12是根据一些实施例的包括系统100的示例台式计算机1205。

就功能块、单元和/或模块而言,本文描述并且在附图中示出了实施例。本领域技术人员应该理解,通过可利用基于半导体的制造技术或者其它制造技术形成的诸如逻辑电路、分立的组件、微处理器、硬布线电路、存储器元件、布线连接等的电子(或光学)电路在物理上实现这些块、单元和/或模块。在通过微处理器或类似元件实现块、单元和/或模块的情况下,可利用软件(例如,微代码)对它们进行编程来执行本文讨论的各种功能并且可选地可通过固件和/或软件来驱动它们。可替换地,各个块、单元和/或模块可通过专用硬件来实现,或者实现为用于执行一些功能的专用硬件与用于执行其它功能的处理器(例如,一个或多个编程的微处理器和关联电路)的组合。另外,在不脱离本发明构思的范围的情况下,实施例的各个块、单元和/或模块可在物理上分为两个或更多个相互配合的和分立的块、单元和/或模块。此外,在不脱离本发明构思的范围的情况下,实施例的块、单元和/或模块可在物理上组合为更多个复杂的块、单元和/或模块。

以下讨论旨在对可实施本发明构思的特定方面的合适的一种或多种机器提供一种简单的一般的描述。通常,所述一种或多种机器包括系统总线,其上附有处理器、存储器(例如,随机存取存储器(ram)、只读存储器(rom)或其它状态保存媒体)、存储装置、视频接口和输入/输出接口端口。所述一种或多种机器可至少部分地通过诸如键盘、鼠标等的常规输入装置的输入以及从另一机器接收到的指令、与虚拟现实(vr)环境的交互、生物反馈或其它输入信号来进行控制。如本文所用,术语“机器”旨在广泛地包围单个机器、虚拟机或以通信方式连接的机器、虚拟机或一起操作的装置的系统。示例性机器包括诸如个人计算机、工作站、服务器、便携式计算机、手持装置、电话、平板等的计算装置,以及诸如例如汽车、列车、货车等的私家或公共运输装置的运输装置。

所述一种或多种机器可包括内置控制器,诸如可编程或不可编程逻辑装置或阵列、专用集成电路(asic)、嵌入式计算机、智能卡等。所述一种或多种机器可利用诸如通过网络接口、调制解调器或其它通信连接与一个或多个远程机器的一个或多个进行连接。可通过诸如内联网、互联网、局域网、广域网等的物理和/或逻辑网络将机器互连。本领域技术人员应该理解,网络通信可利用包括射频(rf)、微信、微波、电机和电子工程师学会(ieee)545.11、光学、红外、线缆、激光等的各种有线和/或无线短范围或长范围载体和协议。

可通过当被机器访问时导致机器执行任务或限定抽象数据类型或低等级硬件环境的关联的数据包括功能、工序、数据结构、应用程序等来描述实施例。例如,关联的数据可被存储在例如ram、rom等的易失性和/或非易失性存储器中,或者包括硬驱动器、软盘、光存储、磁带、闪速存储器、记忆棒、数字视频盘、生物存储等的其它存储装置和它们关联的存储介质中。可按照分组、串联数据、并联数据、传播的信号等的形式通过包括物理和/或逻辑网络的传输环境递送关联的数据,并且可按照压缩或加密格式使用。关联的数据可用于分布式环境中,并且针对机器访问局部和/或远程存储。

参照示出的实施例描述和示出了本发明构思的原理,应该理解,示出的实施例的排列方式和细节可修改,而不脱离这种原理,并且可按照任何期望方式组合。虽然以上讨论集中于特定实施例,但是也考虑了其它构造。具体地说,即使本文使用了诸如“根据本发明实施例”等的表达,但是这些短语一般意在指代可能的实施例,并且不旨在将本发明构思限于特定实施例构造。如本文所用,这些术语可引用可在其它实施例中组合的相同或不同实施例。

本发明的实施例可包括非易失性机器可读介质,其包括可通过一个或多个处理器执行的指令,所述指令包括执行本文所述的实施例的元件的指令。

结果,就本文所述的实施例的宽范围的排列而言,该详细描述和伴随材料仅旨在是示出性的,并且不应成为实施例的范围的限制。因此,本发明所要求保护的是可落入权利要求及其等同物的范围和精神内的这些修改形式。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1