电子设备和电子系统

文档序号:1112803 发布日期:2020-09-29 浏览:8次 >En<

阅读说明:本技术 电子设备和电子系统 (Electronic device and electronic system ) 是由 维卡斯·辛哈 西恩·勒 塔伦·那克拉 田颖莹 艾普瓦·帕特尔 奥马尔·托雷斯 于 2020-03-19 设计创作,主要内容包括:提供一种电子设备和电子系统。根据一个总体方面,所述电子设备可包括:处理器,被配置为发出针对来自高速缓冲存储器的一条数据的第一请求和针对来自系统存储器的所述一条数据的第二请求。所述电子设备可包括:高速缓冲存储器,被配置为临时存储数据的子集。所述电子设备可包括存储器互连。存储器互连可被配置为接收针对来自系统存储器的所述一条数据的第二请求。存储器互连可被配置为确定所述一条数据是否被存储在高速缓冲存储器中。存储器互连可被配置为:如果所述一条数据被确定为存储在高速缓冲存储器中,则取消针对来自系统存储器的所述一条数据的第二请求。(An electronic device and an electronic system are provided. According to one general aspect, the electronic device may include: a processor configured to issue a first request for a piece of data from the cache memory and a second request for the piece of data from the system memory. The electronic device may include: a cache memory configured to temporarily store a subset of the data. The electronic device may include a memory interconnect. The memory interconnect may be configured to receive a second request for the piece of data from the system memory. The memory interconnect may be configured to determine whether the piece of data is stored in the cache memory. The memory interconnect may be configured to: canceling the second request for the piece of data from the system memory if the piece of data is determined to be stored in the cache memory.)

电子设备和电子系统

本申请要求于2019年3月22日提交的名称为“与高速缓存级搜索并行的借用互连目录的推测式DRAM读取”的序列号为62/822,777的临时专利申请的优先权。该在先提交的申请的主题通过引用包含于此。

技术领域

本说明书涉及存储器操作,更具体地,涉及与高速缓存级搜索并行的借用互连目录的推测式动态随机存取存储器(DRAM)读取。

背景技术

当特定数据被多个高速缓存共享并且处理器修改了共享的数据的值时,改变必须被传播到具有该数据的副本的所有其他高速缓存。这种改变传播防止系统违反高速缓存一致性。数据改变的通知可通过总线侦听来完成。

总线侦听或总线监听是高速缓存中的一致性控制器(侦听器)监视或侦听总线事务的方案,它的目标是在分布式共享存储器系统中保持高速缓存一致性。包含一致性控制器(侦听器)的高速缓存被称为侦听式高速缓存。

所有侦听器监视总线上的每一个事务。如果修改共享的高速缓存块的事务在总线上出现,则所有侦听器检查它们的高速缓存是否具有共享的块的相同副本。如果高速缓存具有共享的块的副本,则对应的侦听器执行用于确保高速缓存一致性的动作。该动作可以是高速缓存块的冲刷(flush)或无效化。它还涉及根据高速缓存一致性协议的高速缓存块状态的改变。

当总线事务对特定的高速缓存块发生时,所有侦听器必须侦听总线事务。然后,侦听器查询它们对应的高速缓存标签,以检查是否具有相同的高速缓存块。在大多数情况下,因为良好优化的并行程序不在多个线程之中共享许多数据,所以高速缓存不具有该高速缓存块。因此,侦听器的高速缓存标签查询对于不具有该高速缓存块的高速缓存来说通常是不必要的工作。然而,标签查询干扰了处理器的高速缓存访问,并带来额外的功耗。

用于减少不必要的侦听的一种方式是使用侦听过滤器。侦听过滤器确定侦听器是否需要检查它的高速缓存标签。侦听过滤器是基于目录的结构,并且监视所有一致性流量,以保持高速缓存块的一致性状态的跟踪。它意味着侦听过滤器知道具有高速缓存块的副本的高速缓存。因此,它可以防止不具有高速缓存块的副本的高速缓存进行不必要的侦听。根据侦听过滤器的位置,存在两种类型的过滤器。一种是位于高速缓存侧并在一致性流量到达共享的总线之前执行过滤的源过滤器。另一种是位于总线侧并阻断从共享的总线流出的不必要的一致性流量的目的地过滤器。侦听过滤器还被分类为包含式的和排除式的。包含式侦听过滤器保持高速缓存中的高速缓存块的存在的跟踪。然而,排除式侦听过滤器监视高速缓存中的高速缓存块的不存在。换言之,包含式侦听过滤器中的命中意味着对应的高速缓存块被高速缓存保持。另一方面,排除式侦听过滤器中的命中意味着没有高速缓存具有请求的高速缓存块。

发明内容

本公开的目的在于提供一种具有降低的延迟并高效地利用资源的设备和系统。

根据一个总体方面,一种设备可包括:处理器,被配置为发出针对来自高速缓冲存储器的一条数据的第一请求和针对来自系统存储器的所述一条数据的第二请求。所述设备可包括:高速缓冲存储器,被配置为存储数据的子集。所述设备可包括存储器互连。存储器互连可被配置为接收针对来自系统存储器的所述一条数据的第二请求。存储器互连可被配置为确定所述一条数据是否被存储在高速缓冲存储器中。存储器互连可被配置为:如果所述一条数据被确定为存储在高速缓冲存储器中,则取消针对来自系统存储器的所述一条数据的第二请求。

根据另一总体方面,一种系统可包括:多个处理器,其中,请求的处理器被配置为发出针对来自高速缓冲存储器系统的一条数据的第一请求和针对来自系统存储器的所述一条数据的第二请求。所述系统可包括:高速缓冲存储器系统,针对每个处理器包括高速缓冲存储器系统的与各自的处理器相关联的部分。所述系统可包括存储器互连。存储器互连可被配置为促进所述多个处理器之间的高速缓存一致性。存储器互连可被配置为接收针对来自系统存储器的所述一条数据的第二请求。存储器互连可被配置为确定所述一条数据是否被存储在高速缓冲存储器系统的能够由请求的处理器访问的部分中。存储器互连可被配置为:如果所述一条数据被确定为存储在高速缓冲存储器系统的所述部分中,则取消针对来自系统存储器的所述一条数据的第二请求。

根据另一总体方面,一种设备可包括:存储器访问接口电路,被配置为接收和发送存储器访问请求和响应。所述设备可包括:高速缓存一致性数据结构,被配置为指示高速缓冲存储器的内容。所述设备可包括:推测式请求管理电路,被配置为:接收针对一条数据的到系统存储器的推测式请求,确定所述一条数据是否被存储在高速缓冲存储器的至少一部分中,和如果所述一条数据被确定为存储在高速缓冲存储器中,则取消推测式请求。

在附图和下面的描述中阐述了一个或多个实施方式的细节。其他特征将从说明书和附图以及从权利要求将是清楚的。

如在权利要求中更全面地阐述的那样,基本上如在至少一个附图中所示和/或如结合至少一个附图所述,阐述了用于存储器操作的系统和/或方法,更具体地,阐述了与高速缓存级搜索并行的借用互连目录的推测式动态随机存取存储器(DRAM)读取。

根据本公开,当对高速缓冲存储器的请求被推测为成功时,对系统存储器的请求被取消。因此,具有降低的延迟并有效地利用资源的设备和系统被提供。

附图说明

图1A是根据公开的主题的系统的示例实施例的框图。

图1B是根据公开的主题的系统的示例实施例的框图。

图2是根据公开的主题的系统的示例实施例的框图。

图3是根据公开的主题的技术的示例实施例的流程图。

图4是可包括根据公开的主题的原理形成的装置的信息处理系统的示意性框图。

在各个附图中的同样的参考符号指示同样的元件。

具体实施方式

在下文中将参照示出一些示例实施例的附图更全面地描述各种示例实施例。然而,本公开的主题可以以许多不同的形式来实现,并且不应被解释为受限于在此阐述的示例实施例。相反,提供这些示例实施例使得该公开将是彻底的和完整的,并且将本公开的主题的范围充分传达给本领域技术人员。在附图中,为了清楚,层和区域的大小和相对大小可被夸大。

将理解,当元件或层被称为“在”另一元件或层“上”、“连接到”或“结合到”另一元件或层时,所述元件或层可直接在所述另一元件或层上、直接连接到或直接结合到所述另一元件或层,或者可存在中间元件或层。相反,当元件被称为“直接在”另一元件或层“上”、“直接连接到”或“直接结合到”另一元件或层时,不存在中间元件或层。同样的标号始终表示同样的元件。如在此所使用的,术语“和/或”包括相关所列项中的一个或多个中的任何或者所有组合。

将理解,尽管术语第一、第二、第三等在此可用于描述各种元件、组件、区域、层和/或部分,但是这些元件、组件、区域、层和/或部分不应受这些术语限制。这些术语仅用于将一个元件、组件、区域、层和/或部分与另一元件、组件、区域、层和/或部分区分开。因此,在不脱离本公开的主题的教导的情况下,下面讨论的第一元件、第一组件、第一区域、第一层和/或第一部分可被称为第二元件、第二组件、第二区域、第二层和/或第二部分。

为了易于描述,在此可使用空间相对术语(诸如,“在…之下”、“在…下方”、“下面的”、“在…之上”、“上面的”等)来描述如附图中示出的一个元件或特征与另外的一个或多个元件或特征之间的关系。将理解,空间相对术语意在包含除了在附图中描绘的方位之外的装置在使用或操作中的不同方位。例如,如果附图中的装置被翻转,则被描述为在其他元件或特征“下面”或“之下”的元件随后将位于所述其他元件或特征“之上”。因此,示例性术语“在…下方”可包括“在…之上”和“在…下方”的方位两者。装置可被另外定位(旋转90度或在其他方位),并且在此使用的空间相对描述语被相应地解释。

同样地,为了易于描述,在此可使用电学术语(诸如,“高”、“低”、“上拉”、“下拉”、“1”、“0”等)来描述如附图中示出的相对于其他电压电平或者另外的一个或多个元件或特征的电压电平或电流。将理解,电学相对术语意在包含除了在附图中描绘的电压和电流之外的装置在使用或操作中的不同参考电压。例如,如果附图中的装置或信号被翻转或者使用其他参考电压、电流或电荷,则被描述为“高”或“上拉”的元件随后相比于新的参考电压或电流将是“低”或“下拉”。因此,示例性术语“高”可包括相对低的电压或电流或者相对高的电压或电流两者。装置可另外基于不同的电学参考框架,在此使用的电学相对描述语被相应地解释。

在此使用的术语仅用于描述特定示例实施例的目的,而不意在限制本公开的主题。如在此使用的,除非上下文另外清楚地指示,否则单数形式也意在包括复数形式。还将理解,当术语“包括”和/或“包含”在本说明书中使用时,指定存在陈述的特征、整体、步骤、操作、元件和/或组件,但不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组。

在此参照作为理想化的示例实施例(和中间结构)的示意示图的截面示图来描述示例实施例。这样,作为例如制造技术和/或公差的结果的示图的形状的改变将被预期。因此,示例实施例应不被理解为受限于在此示出的区域的特定形状,而是包括例如由于制造导致的形状的偏差。例如,示出为矩形的注入区域在它的边缘将通常具有圆角或曲线特征和/或注入浓度的梯度,而不是从注入区域到非注入区域的二元改变。同样地,由注入形成的埋区可导致埋区与发生注入的表面之间的区域中的一些注入。因此,在附图中示出的区域本质上是示意性的,它们的形状不意在示出装置的区域的实际形状,并且不意在限制本公开的主题的范围。

除非另外定义,否则在此使用的所有术语(包括技术术语和科学术语)具有与本公开的主题所属领域的普通技术人员通常理解的含义相同的含义。还将理解,除非在此明确地如此限定,否则术语(诸如,在通用字典中限定的术语)应被解释为具有与它们在相关领域的上下文中的含义一致的含义,并且将不被理想化地或过于形式化地解释。

在下文中,将参照附图详细解释示例实施例。

图1A是根据公开的主题的系统100的示例实施例的框图。在各种实施例中,系统100(也称为电子系统、电子设备等)可包括计算装置(诸如,以膝上型计算机、台式计算机、工作站、片上系统(SOC)、个人数字助理、智能电话、平板计算机和其他合适的计算机或者其虚拟机或虚拟计算装置为例)。

在示出的实施例中,系统100可包括处理器102。处理器102可被配置为执行可执行软件、固件或它们的组合的一个或多个机器可执行指令或片段。在示出的实施例中,处理器102可包括核、处理单元或更大的集成电路的部分。

在示出的实施例中,系统100可包括存储器高速缓存电路或系统(也称为高速缓存、高速缓冲存储器)104。高速缓存104可被配置为临时存储数据(例如,数据133)。在示出的实施例中,高速缓存104可包括1级(L1)高速缓存111和2级(L2)高速缓存112。在这样的实施例中,高速缓存111和112可以是分层式的。在各种实施例中,其他高速缓存级可被包括在高速缓冲存储器104中,或者可从高速缓冲存储器104被移除。在各种实施例中,高速缓存级的一部分可被包括在处理器102中(例如,0级(L0)高速缓存)。应理解,以上仅是一个说明性示例,公开的主题不限于此。

在示出的实施例中,系统100可包括存储器互连106。在各种实施例中,存储器互连106可连接和/或管理多个高速缓存系统104。虽然在这种简化的说明中不存在,但是这样的多个高速缓存系统104可存在于其他实施例中。在这样的实施例中,存储器互连106可促进高速缓存一致性。

在示出的实施例中,系统100可包括存储器控制器电路108。存储器控制器108可被配置为与系统存储器110接口连接,并且可在系统存储器110(或者,另一中间电路)与处理器102(和它的中间电路(诸如,存储器互连106)等)之间发送和接收消息。

在示出的实施例中,系统100可包括系统存储器110。系统存储器110可被配置为存储数据(例如,数据133)。在各种实施例中,系统存储器110可包括动态随机存取存储器(DRAM)。尽管如此,但理解的是,以上仅是一个说明性示例,公开的主题不限于此。在各种实施例中,易失性和/或非易失性存储器技术可被采用。通常,系统存储器110可存储在高速缓存104中存储的每条数据的副本,但是副本可能是旧的或者过时的(例如,对高速缓存的写入可能仍未被传播到系统存储器)。

在各种实施例中,处理器102、高速缓存104、存储器互连106和存储器控制器108可被包括在集成电路或处理单元180(例如,片上系统(SOC))中。在各种实施例中,系统存储器110可被包括在其他组件中或者与其他组件集成。理解的是,以上仅是一个说明性示例,公开的主题不限于此。

在示出的实施例中,处理器102可能期望访问一条数据(例如,数据133)。为了这样做,传统上,处理器102将发出存储器访问请求(例如,读取请求、写入请求)。系统100将通过在进行到下一级(例如,L2)之前首先搜索最近的层级(tier)或级(例如,L1),来在高速缓存104中检查数据。如果仍未发现数据,则将对系统存储器110做出对数据的请求。这一系列的搜索浪费了时间,特别是当数据是关键的并且延迟是重要的时候。

在示出的实施例中,处理器102可发出不止一个对数据的请求,而是基本上并行的两个对数据的请求。在示出的实施例中,处理器102可发出对来自高速缓存104的期望的一条数据的第一请求191(如传统上那样做)。也就是说,处理器102可向高速缓存104发出对期望的一条数据的第一请求191。然而,在各种实施例中,处理器102还可发出对来自系统存储器110的期望的一条数据的第二请求192(第二请求192通过存储器互连106和存储器控制器108被路由)。也就是说,处理器102还可向系统存储器110发出对期望的一条数据的第二请求192。

在各种实施例中,第二请求192可被允许自然地出现或者如传统的对系统存储器110的存储器访问将会的那样出现,并且使数据133返回。然而,如果高速缓存请求191也使数据133返回,则两个版本的数据133可能引起问题。高速缓存的版本和系统级的版本可能是不一致的(即,具有不同的值),读取后写入排序可能是复杂的,并且完成的系统存储器请求192不必要地使用了系统资源。这样,允许系统级存储器访问发生而不进一步分析可能不是可取的。

在示出的实施例中,处理器102可推测式地发出第二请求192。在这样的实施例中,第二请求192可包括用于指示第二请求192不是正常的(例如,非推测式的或传统的)存储器访问而是要求非传统的处置和处理的特殊的推测式的存储器访问的位或标志。

在示出的实施例中,第二请求192可由存储器互连106接收。这与其中仅非推测式的第二请求被使用的实施例进行了比较,非推测式的第二请求可旁路存储器互连106并代替地去往存储器控制器108。在示出的实施例中,因为存储器互连106具有对处理推测式性质的第二请求192所需的信息的访问,所以第二请求192可被路由到存储器互连106。

在示出的实施例中,存储器互连106可包括侦听过滤器目录116和/或侦听高速缓存(未示出但以上进行了描述)。在这样的实施例中,侦听过滤器116(或者,类似的数据结构)可被配置为指示什么数据133当前被存储在高速缓存104中。

在这样的实施例中,代替完成对系统存储器110的第二请求192,无论对高速缓存104的第一请求191是否将会成功,存储器互连106可预测或确定第一请求191是否将会成功或可能成功。

在各种实施例中,存储器互连106可通过确定请求的一条数据(例如,数据133)是否被包括或存储在高速缓存104中来预测或确定第一请求191是否将会成功或可能成功,其中,“存储”包括数据也已经在请求者处理器的高速缓存中被更新或修改的思想。如果确定请求的一条数据(例如,数据133)被包括或存储在高速缓存104中,则第一请求191可被确定或预测为成功。如果确定请求的一条数据(例如,数据133)未被包括或存储在高速缓存104中,则第一请求191可被确定或预测为失败。

在各种实施例中,这种确定可通过检查或者使用存储器互连106的侦听过滤器目录116或高速缓存一致性机制/电路来进行。在各种实施例中,侦听过滤器目录116可被配置为保守的或悲观的。在这样的实施例中,侦听过滤器目录116可被允许不正确地指示一条数据在高速缓存104中(即,错误肯定),但不允许不正确地指示一条数据不在高速缓存104中(即,错误否定)。在这样的实施例中,存储器互连106将不被配置为仅不正确地预测第二请求192应被取消,而不会不正确地预测第二请求应被进行。在这样的实施例中,存储器互连106可朝向可管理的预测失败来偏置或加权。

在各种实施例中,如果第一请求191被确定或预测为失败,则存储器互连106可允许对系统存储器110的第二请求192进行。第二请求192可从系统存储器110检索数据133,并将其返回到处理器102。在这样的实施例中,由于第一请求191已经失败,因此将不会存在数据133的与系统存储器110的版本冲突的第二版本,用于从系统存储器110检索数据的资源也不被浪费。代替地,如上所述,推测式的第二请求192将在比传统的“高速缓存失败-系统请求”方案低的延迟的情况下具有检索的数据。

相反地,如果第一请求191被确定或预测为成功(即,高速缓存104被相信包括数据133),则存储器互连106可取消第二请求192,并且不允许第二请求192进行到系统存储器110。在这样的实施例中,防止第二请求192进行到存储器控制器108可指示存储器控制器108不转发第二请求192。

在这样的实施例中,通过取消第二请求,处理器102可不具有上述的存在(来自高速缓存104和系统存储器110二者)多个版本的相同数据的问题。此外,在从系统存储器110检索数据方面花费的资源可不被花掉或浪费。理解的是,以上仅是一些说明性示例,公开的主题不限于此。

在各种实施例中,存储器互连106可被配置为确保当出于一致性原因而不安全时将不存在系统存储器110响应数据。因此,当系统存储器110响应数据被接收到时,通过旁路高速缓存104,它可直接被转发到处理器102,而在高速缓存104中没有任何进一步的检查。

在各种示例实施例中,存储器互连106还可被配置为:在存储器互连106、系统存储器110和/或高速缓存104队列(或者其他系统资源)被大量加载的情况下防止或取消推测式的第二请求192。在这样的实施例中,第二请求192可在系统100具有大量负担的情况下被延迟或节流。可选地,如果针对来自系统存储器的一条数据的第二请求192在与所述一条数据相关联的写入请求之前到达存储器互连106,则取消第二请求192。此时,第二请求192可早于写入请求。

此外,在各种实施例中,处理器102可被配置为仅在存储器访问被认为关键或者延迟很重要时发出推测式的第二请求192。在这样的实施例中,这可帮助系统资源的管理。在一些实施例中,用于发出推测式的第二请求192的阈值可以是动态的,使得在系统资源充足时请求192被更经常地进行。在另一实施例中,处理器102可仅在它预测高速缓存未命中的情况下发出推测式的第二请求192。在另一实施例中,处理器102可发出第二请求192作为所有的或大多数的存储器访问的理所当然的任务。理解的是,以上仅是一些说明性示例,公开的主题不限于此。

在示出的实施例中,如果存储器互连106决定取消第二请求192,则它可发出取消响应195。在这样的实施例中,取消响应195可通知请求的处理器102第二请求192已被取消。在这样的实施例中,处理器102可不再等待或不再将资源分配给由于第二请求192而预期返回的数据。在另一实施例中,如果存储器互连106不正确地取消了第二请求192(例如,由于错误预测或错误肯定),则取消响应195可通知处理器102可能需要第三请求(在图1B中示出)。理解的是,以上仅是一个说明性示例,公开的主题不限于此。

在示出的实施例中,对高速缓存104的第一请求191正常地完成或传统地完成。在这样的实施例中,第一请求191可确定数据是否在高速缓存104中。第一请求191导致每个高速缓存层、层级或级(例如,L1高速缓存111、L2高速缓存112等)被轮流检查,直到要么数据被发现,要么高速缓存中没有更多的级去检查。在这样的实施例中,第一请求191可要么返回成功响应,要么返回失败响应(均未示出)。在各种实施例中,当第二请求192与第一请求191被并行发出时,第一请求191可(在最坏的情况下)在搜索的最后的高速缓存层级处终止。在另一实施例中,如在传统情况下描述的那样,可向系统存储器110发出第一请求191。

图1B是根据公开的主题的系统101的示例实施例的框图。在各种实施例中,系统101可包括计算装置(诸如,以膝上型计算机、台式计算机、工作站、片上系统(SOC)、个人数字助理、智能电话、平板计算机和其他合适的计算机或者其虚拟机或虚拟计算装置为例)。在各种实施例中,系统101可示出多核版本的图1A的系统100。

在这样的实施例中,如上所述,系统101可包括处理器102、高速缓存系统174(与高速缓存系统104相似)、存储器互连106、存储器控制器108和系统存储器110。在各种实施例中,集成电路181可包括处理器102、高速缓存系统174、存储器互连106、存储器控制器108和处理器102B。理解的是,以上仅是一个说明性示例,公开的主题不限于此。

在示出的实施例中,系统101可包括多个处理器、多个处理单元或多个核(由处理器102B的添加来表示)。在这样的实施例中,每个处理器102可与高速缓存系统174的它自己的各个部分相关联。

在示出的实施例中,高速缓存系统174可包括L1高速缓存111和111B、L2高速缓存112和112B以及3级(L3)高速缓存113。在这样的实施例中,高速缓存111和112(被分组为部分114)可专用于处理器102。然而高速缓存111B和112B(被分组为部分114B)可专用于处理器102B。在示出的实施例中,高速缓存113可用于它们的统一使用或共享使用。在另一实施例中,高速缓存113可不存在。理解的是,以上仅是一些说明性示例,公开的主题不限于此。

在示出的实施例中,当处理推测式的第二请求192时,存储器互连106可被配置为仅在与请求的处理器(例如,处理器102)相关联的高速缓存中检查请求的数据的存在。在这样的实施例中,高速缓存111、112甚至113可(经由侦听过滤器116或其他高速缓存一致性结构)被检查,而高速缓存111B和112B(与非请求的处理器102B相关联)可不被检查。同样地,如果处理器102B是请求的处理器,则高速缓存111B、112B和113可能已经被检查。

在各种实施例中,一旦与请求的处理器(例如,处理器102)相关联的高速缓存被检查并被发现缺失,其他高速缓存(例如,高速缓存111B和112B)就可被检查。在这样的实施例中,其他高速缓存(例如,高速缓存111B和112B)可包括该数据,并且由于侦听操作可返回期望的数据,因此使对系统存储器110的推测式的第二请求192不必要。在另一实施例中,仅请求者的高速缓存(例如,高速缓存111、112和113)中的数据的存在可被检查,以用于生成推测式的取消响应195。

如上所述,在各种实施例中,存储器互连106可取消第二请求192,并向请求的处理器102发出取消响应195。然而,如上所述,有时存储器互连106可能关于数据存在于高速缓存174中发生错误。在这样的实施例中,第一请求191可最终失败。在这样的实施例中,处理器102可被配置为针对期望的数据向系统存储器110发出非推测式的第三请求193。在各种实施例中,非推测式的第三请求193可被路由到高速缓存174,以避免在第一请求191被发出之后数据被带入高速缓存系统174中(例如,在高速缓存113中)的可能性。在另一实施例中,非推测式的第三请求193可被路由到存储器互连106或存储器控制器108(当存储器互连106没有选通或取消非推测式的请求时)。在各种实施例中,非推测式的第三请求193可包括指示它是非推测式的并且可不如在此描述的那样被取消的标记或位。

图2是根据公开的主题的系统200的示例实施例的框图。在各种实施例中,系统200可包括上述的存储器互连电路,或者可以是上述的存储器互连电路的部分。

在各种实施例中,系统200可包括被配置为接收和发送存储器访问请求和响应的存储器访问接口电路202。在各种实施例中,存储器访问接口电路202可被配置为接收如上所述的推测式的存储器访问请求。在另一实施例中,存储器访问接口电路202可被配置为发送如上所述的取消响应消息。在另一实施例中,存储器访问接口电路202可被配置为接收如上所述的非推测式的存储器访问请求。理解的是,以上仅是一些说明性示例,公开的主题不限于此。

在各种实施例中,系统200可包括高速缓存一致性数据结构204。在各种实施例中,高速缓存一致性数据结构204可能够指示一条数据当前是否被存储在高速缓存系统中。在各种实施例中,当确定推测式的存储器访问是否应该被允许进行时,这种高速缓存一致性数据结构204可被访问或询问。

在各种实施例中,高速缓存一致性数据结构204可包括如上所述的侦听过滤器目录。在另一实施例中,高速缓存一致性数据结构204可包括高速缓存标签或用于访问高速缓存系统的高速缓存标签的电路。在另一实施例中,基于目录的高速缓存一致性机制可被采用。理解的是,以上仅是一个说明性示例,公开的主题不限于此。

在各种实施例中,系统200可包括推测式请求管理电路206。在各种实施例中,推测式请求管理电路206可被配置为选通或确定推测式请求是否将是系统资源(例如,周期、带宽等)的合适使用或宽恕使用。如上所述,在这样的实施例中,推测式请求管理电路206可被配置为确定请求的一条数据是否已经存储在高速缓存中,或者基本上并行的对高速缓存系统的存储器访问是否可能成功。在这样的实施例中,可利用高速缓存一致性数据结构204来进行确定。

在各种实施例中,如果推测式请求管理电路206确定推测式请求可能冗余,则它可取消或另外阻止推测式请求。例如,推测式请求管理电路206至少部分地通过将取消请求消息发到请求的装置来取消推测式请求。在这样的实施例中,如果推测式请求管理电路206确定推测式请求可能冗余,则它可允许推测式请求进行。

图3是根据公开的主题的技术300的示例实施例的流程图。在各种实施例中,技术300可通过系统(诸如,图1A、图1B和图2的系统)来使用或产生。

尽管如此,但理解的是,以上仅是一些说明性示例,公开的主题不限于此。理解的是,公开的主题不限于由技术300示出的动作的顺序或数量。

块302示出:在一个实施例中,如上所述,请求的处理器或发起的电路可确定存储器访问是否是延迟关键的访问或另外重要的访问。块302还可包括额外的预测逻辑,以确定是否发出推测式请求。决定不必仅基于延迟。如果存储器访问不是延迟关键的访问或另外重要的访问,则可向高速缓存做出单个存储器请求。如果存储器访问是延迟关键的访问或另外重要的访问,则如上所述,可向高速缓存和系统存储器二者做出基本上并行的两个存储器请求。

块304示出:在一个实施例中,作为基于第一高速缓存的请求的部分,可进行检查以确定数据是否实际上在高速缓存系统中。块306示出:在一个实施例中,可能发生高速缓存命中或未命中。块399示出:在一个实施例中,如果发生高速缓存命中,则基于第一高速缓存的请求可用于完成存储器访问。

块308示出:在一个实施例中,如果发生高速缓存未命中,则可确定推测式的第二请求是否已经做出(每个块302)。块307示出:在一个实施例中,如上所述,如果没有进行推测式请求,则可进行对系统存储器的非推测式请求。块309示出:在一个实施例中,如果已进行推测式请求,则系统可等待该请求的结果。在各种实施例中,如果推测式请求最终(并且不正确地)被取消,则可发生块334的步骤。连接器335连接块309和块334。

块312示出:在一个实施例中,如上所述,可经由存储器互连向系统存储器发出推测式的第二请求。块312和块316示出:在一个实施例中,存储器互连可检查侦听过滤器目录或其他高速缓存一致性结构,以确定请求的数据当前是否被存储在高速缓存系统中。

块318示出:在一个实施例中,如上所述,如果请求的数据不在高速缓存系统中,则存储器访问可进行到系统存储器。在这样的实施例中,存储器请求可从系统存储器实现。

块322示出:在一个实施例中,如果数据在高速缓存系统中,则可确定如何最好地向请求的处理器提供该数据。具体地,可确定数据是否被存储在高速缓存中。在各种实施例中,进一步的测试可包括数据是否以可接收的状态(例如,不是MESI(修改的-独享的-共享的-无效的)协议的无效状态)被存储。

块324示出:在一个实施例中,如果数据不在与请求的处理器相关联的高速缓存中,则可确定它实际上是否在与多处理器系统的另外的处理器相关联的高速缓存中。块324示出:在一个实施例中,如果块316的结果不正确或太有限,并且数据不也不在另外的处理器的高速缓存中,则推测式请求可进行到系统存储器(块318)。否则,如果数据在另外的高速缓存中,则块326示出:在一个实施例中,数据可经由侦听其他的高速缓存而成为可用的。

块332示出:在一个实施例中,如上所述,如果数据在高速缓存中可用,并且不期望经由系统存储器(块318)得到它,则推测式请求可被取消。如上所述,这可包括将取消响应发回到请求的处理器。在优选的实施例中,在块324与332之间可能不存在链接。在这样的实施例中,如果期望的数据不在请求者高速缓存中而在其他高速缓存中,则存储器互连可经由侦听来供应数据,并且可将取消响应返回到处理器。使处理器重试不必要。

块334示出:在一个实施例中,在稍后的一些时间,基于第一高速缓存的请求可完成。块399示出:在一个实施例中,如果发生高速缓存命中,则基于第一高速缓存的请求可用于完成存储器访问。块338示出:在一个实施例中,如上所述,在另一方面,如果存储器互连在取消推测式请求(块332)中错误,并且数据实际上不在高速缓存(块316和306)中,则可尝试非推测式请求。在这样的实施例中,可向系统存储器发出非推测式请求。

图4是可包括根据公开的主题的原理形成的半导体装置的信息处理系统400的示意性框图。

参照图4,信息处理系统400可包括根据公开的主题的原理构造的一个或多个装置。在另一实施例中,信息处理系统400可采用或执行根据公开的主题的原理的一种或多种技术。

在各种实施例中,信息处理系统400可包括计算装置(诸如,以膝上型计算机、台式计算机、工作站、服务器、刀片服务器、个人数字助理、智能电话、平板计算机和其他合适的计算机或者其虚拟机或虚拟计算装置为例)。在各种实施例中,信息处理系统400可由用户(未示出)使用。

根据公开的主题的信息处理系统400还可包括中央处理器(CPU)、逻辑或处理器410。在一些实施例中,处理器410可包括一个或多个功能单元块(FUB)或组合逻辑块(CLB)415。在这样的实施例中,组合逻辑块可包括各种布尔逻辑运算(例如,与非、或非、非、异或)、稳定逻辑器件(触发器、锁存器)、其他逻辑器件或它们的组合。这些组合逻辑运算可以以简单的或复杂的方式被配置,以处理输入信号来实现期望的结果。理解的是,虽然同步组合逻辑运算的一些说明性示例被描述,但是公开的主题不被这样限制,并且可包括异步运算或它们的混合。在一个实施例中,组合逻辑运算可包括多个互补金属氧化物半导体(CMOS)晶体管。在各种实施例中,这些CMOS晶体管可被布置在执行逻辑运算的门中;尽管如此,但是理解的是,其他技术可用在公开的主题的范围内并且在公开的主题的范围内。

根据公开的主题的信息处理系统400还可包括易失性存储器420(例如,随机存取存储器(RAM))。根据公开的主题的信息处理系统400还可包括非易失性存储器430(例如,硬盘驱动器、光学存储器、NAND或闪存)。在一些实施例中,易失性存储器420、非易失性存储器430或者它们的组合或部分也可被称为“存储介质”。在各种实施例中,易失性存储器420和/或非易失性存储器430可被配置为以半永久或基本上永久的形式来存储数据。

在各种实施例中,信息处理系统400可包括被配置为允许信息处理系统400成为通信网络的部分并且经由通信网络通信的一个或多个网络接口440。Wi-Fi协议的示例可包括但不限于:电气与电子工程师协会(IEEE)802.11g、IEEE 802.11n。蜂窝协议的示例可包括但不限于:IEEE 802.16m(亦称无线-MAN(城域网)高级)、长期演进(LTE)高级、增强数据速率GSM(全球移动通信系统)演进(EDGE)、演进的高速分组接入(HSPA+)。有线协议的示例可包括但不限于:IEEE 802.3(亦称以太网)、光纤通道、电力线通信(例如,HomePlug、IEEE1901)。理解的是,以上仅是一些说明性示例,公开的主题不限于此。

根据公开的主题的信息处理系统400还可包括用户接口单元450(例如,显示器适配器、触觉接口、人机接口装置)。在各种实施例中,这个用户接口单元450可被配置为从用户接收输入和/或向用户提供输出。其他种类的装置也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈(例如,视觉反馈、听觉反馈或触觉反馈);来自用户的输入可以以任何形式(包括声学、语音或触觉输入)被接收。

在各种实施例中,信息处理系统400可包括一个或读个其他装置或硬件组件460(例如,显示器或监视器、键盘、鼠标、相机、指纹读取器、视频处理器)。理解的是,以上仅是一些说明性示例,公开的主题不限于此。

根据公开的主题的信息处理系统400还可包括一个或多个系统总线405。在这样的实施例中,系统总线405可被配置为通信地连接处理器410、易失性存储器420、非易失性存储器430、网络接口440、用户接口单元450和一个或多个硬件组件460。由处理器410处理的数据或从非易失性存储器430的外部输入的数据可被存储在非易失性存储器430或易失性存储器420中。

在各种实施例中,信息处理系统400可包括或执行一个或多个软件组件470。在一些实施例中,软件组件470可包括操作系统(OS)和/或应用。在一些实施例中,OS可被配置为向应用提供一个或多个服务,并且管理或充当信息处理系统400的应用与各种硬件组件(例如,处理器410、网络接口440)之间的中介。在这样的实施例中,信息处理系统400可包括一个或多个本地应用,本地应用可被本地安装(例如,在非易失性存储器430内),并且被配置为直接由处理器410执行并且直接与OS交互。在这样的实施例中,本地应用可包括预编译机器可执行代码。在一些实施例中,本地应用可包括被配置为将源代码或目标代码翻译为之后由处理器410执行的可执行代码的脚本解释器(例如,C shell(csh)、AppleScript、AutoHotkey)或虚拟执行机(VM)(例如,Java虚拟机、微软公共语言运行库)。

以上描述的半导体器件可使用各种封装工艺来封装。例如,根据公开的主题的原理构造的半导体器件可使用以下中的任意一种来封装:堆叠封装(POP)技术、球栅阵列(BGA)技术、芯片级封装(CSP)技术、带引线的塑料芯片载体(PLCC)技术、塑料双列直插式封装(PDIP)技术、华夫裸片封装技术、晶片形式的裸片技术、板上芯片(COB)技术、陶瓷双列直插式封装(CERDIP)技术、塑料公制四方扁平封装(PMQFP)技术、塑料四方扁平封装(PQFP)技术、小外形封装(SOIC)技术、收缩型小外形封装(SSOP)技术、薄型小外形封装(TSOP)技术、薄型四方扁平封装(TQFP)技术、系统级封装(SIP)技术、多芯片封装(MCP)技术、晶片级制造封装(WFP)技术、晶片级处理堆叠封装(WSP)技术和如本领域技术人员将知道的其他技术。

方法步骤可通过执行计算机程序的一个或多个可编程处理器来执行,该计算机程序用于通过对输入数据进行操作并生成输出来执行功能。方法步骤还可由专用逻辑电路来执行,并且设备可被实现为专用逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(专用集成电路)。

在各种实施例中,计算机可读介质可包括指令,所述指令在被执行时,使装置执行方法步骤的至少一部分。在一些实施例中,计算机可读介质可被包括在磁介质、光学介质、其他介质或它们的组合(例如,CD-ROM、硬盘驱动器、只读存储器、闪存驱动器)中。在这样的实施例中,计算机可读介质可以是有形地且非暂时性地实现的制造产品。

虽然公开的主题的原理已经参照示例实施例被描述,但是本领域技术人员将清楚,在不脱离这些公开的构思的精神或范围的情况下,可对其进行各种改变和修改。因此,应理解,以上实施例不是限制性的,而仅是说明性的。因此,公开的构思的范围将通过所附权利要求和他们的等同物的最宽的可允许的解释来确定,并且不应受到前面的描述的局限或限制。因此,将理解,所附权利要求意在覆盖如落入实施例的范围内的所有这样的修改和改变。

19页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种大型货运无人机测控信息实时处理系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类