提高存储性能的制作方法

文档序号:6577044阅读:152来源:国知局
专利名称:提高存储性能的制作方法
技术领域
本发明的实施例涉及微处理器体系结构。更具体地说,本发明的实施 例涉及通过实现专有读取(read-for-ownership)的乱序发射和更有效地使 用存储缓冲器延迟周期来提高微处理器中的存储性能的方法和装置。
背景技术
微处理器一般通过被称为"前端总线"(FSB)的共享计算机系统总 线来与计算机系统进行通信。但是,由于微处理器性能被提高而且计算机 系统使用沿着同一 FSB互连的多个处理器,所以FSB已经成为性能瓶 颈。
解决这个问题的一个方法是在多处理器系统中的各个处理器之间使用 点到点(PtP)链路。PtP链路一般被实现为多处理器网络中各个处理器的 专用总线踪迹(trace)。虽然典型PtP链路比FSB提供更大的吞吐率,但 是PtP链路的延迟可能比FSB的延迟更大。
PtP的延迟尤其可能会影响微处理器执行存储操作的性能,特别是在 其存储操作之间要求强有序的微处理器体系结构中更是这样。例如,因为 要求强有序,所以在后来的存储操作可以被处理器发射之前,先前发射的 存储操作对于系统中的其它总线代理来说一般必须是可访问的,或至少是 可检测到的。操作(例如存储、载入或其它操作)对于计算机系统中的其 它总线代理的可检测性通常被称为该操作的"全局观测"。 一般地,微处 理器操作或指令仅在它们已经被存储到缓存或其它存储器后才变为可被全
4局观测,系统中的其它代理可以在所述缓存或其它存储器中检测到所述操 作或指令的存在。
在强有序微处理器体系结构中的存储操作中,直到先前的存储操作已 经被全局观测,典型的微处理器才从存储缓冲器,或者其它存储序列结 构,或者在某些情况下从处理器执行单元发射存储操作。例如专有读取
(RFO)操作的一个操作会先于典型微处理器体系结构中的存储操作的发 射,以获得对将要存储该存储操作的缓存或其它存储区域线的排他性控 制,从而使该存储操作可以被全局观测。但是,在典型微处理器体系结构 中,直到先前的存储操作被全局观测,RFO操作才被发射。
图1示出了用于在强有序微处理器体系结构中处理被发射的存储操作 的现有技术的缓存体系结构。该存储缓冲器包括将要通过缓存线填充缓冲 器(LFB)而被分别存储在第一级(Ll)缓存的地址X和Y中的数据X, 和Yp但是,在典型的现有技术的体系结构中,直到Ll缓存中的数据Xo 和地址X已经被全局观测,存储数据Xi、 ^和它们相应的RFO操作才可 以被发射。
在现有技术体系结构中,由于存储操作发射以及最终的指令退休中的 延迟,微处理器和其所在的系统的整体性能可能会受到损害。另外,随着 PtP多处理器系统变得更加普遍,这个问题可能被恶化,因为系统中的每 个处理器都可能依赖于由系统中的其它存储器存储的数据。

发明内容
本发明的目的通过实现RFO操作的乱序发射和更有效地使用存储缓冲 器延迟周期来改善微处理器的存储性能。 本发明提供了一种处理器,包括 用于存储数据的第一存储单元;和
耦合到所述第一存储单元的第二存储单元,用于仅在所述数据变为可 被总线代理检测到后存储所述数据。
本发明提供了一种具有强有序指令体系结构的处理器,包括 存储缓冲器,不论先于第二数据值从所述存储缓冲器中被读取的第一数据值是否己经变为可被全局观测,所述第二数据值都从所述存储缓冲器 中被读取并被存储到缓存中。
本发明提供了一种计算机系统,包括-
存储第一指令和第二指令的存储单元,所述第一指令用于在至少一个 总线代理中存储第一数据值,所述第二指令用于当所述第一数据值被存储 在至少一个总线代理后,在至少一个总线代理中存储第二数据值;
第一级缓存和线填充缓冲器,用于在所述第一或所述第二数据值可被 至少一个总线代理检测到之前同时存储所述第一和第二数据值;和
第一总线代理,用于在所述第一总线代理能够在所述第一级缓存或线 填充缓冲器中检测到所述第一和第二数据值中的之一或二者之前,检测所 述第一和第二数据值中的之一或二者。
本发明提供了一种装置,包括
分配逻辑,用于分配全局观测存储缓冲器中的条目,以在所述数据对 应的存储操作变为非推测性的之后、所述数据从存储缓冲器被读取之前, 存储可被全局观测的数据;
耦合到所述全局观测存储缓冲器的缓存,用于在所述数据变为可被全 局观测前存储所述数据;和
专有读取逻辑,用于在所述数据被存储在所述缓存中之前获得对所述 缓存中的一条线的排他性所有权。
本发明还提供了一种用于发射强有序存储器操作的方法,包括
发射第一存储操作;
在存储缓冲器中存储与所述第一存储操作相关联的第一数据; 发射第二存储操作;
在所述存储缓冲器中存储与所述第二存储操作相关联的第二数据; 在存储单元中存储所述第一数据;以及
在所述第一数据被存储在所述存储单元中且不可被全局观测的期间, 在所述存储单元中存储所述第二数据。


6通过附图,以举例而非限制的方式来图示本发明的实施例,其中相似 的标号表明类似的元件,并且
图1示出了用于在强有序微处理器体系结构中处理被发射的存储操作 的现有技术的缓存体系结构。
图2示出了其中可以使用本发明的至少一个实施例的计算机系统。
图3示出了其中可以使用本发明的至少一个实施例的总线代理。
图4示出了本发明的一个实施例,其中全局观测存储缓冲器(GoSB) 被用来跟踪存储操作并存储已经变为可被全局观测的相应数据值。
图5示出了本发明的一个实施例,其中GoSB索引和GoSB有效字段 没有被存储在第一级(Ll)缓存或线填充缓冲器(LFB)条目中,相反 地,GoSB索引字段被存储在存储缓冲器的条目中。
图6的流程图示出了与本发明的至少一个实施例相关联的操作。
具体实施例方式
本发明的实施例涉及微处理器体系结构。更具体地说,本发明的实施 例涉及通过实现专有读取的乱序发射和更有效地使用存储缓冲器延迟周期 来提高微处理器中的存储性能的方法和装置。
为了在提高存储缓冲器效率的同时辅助乱序RFO操作,本发明的至少 一个实施例涉及使用例如全局观测存储缓冲器(GoSB)的存储介质,以 跟踪已经变为可被全局观测的存储数据。在GoSB中跟踪可被全局观测的 数据使得存储数据能够被存储在可监听的存储设备(例如第一级(Ll)缓 存和线填充缓冲器(LFB))中,而不考虑先前的存储数据是否已经被全 局观测,于是提高了微处理器中的存储数据的吞吐率和存储操作的性能。
图2示出了可以与本发明的至少一个实施例结合起来使用的计算机系 统。处理器205从缓存210和主存储器215访问数据。本发明的一个实施 例206的位置在图2的处理器内部被示出。但是,本发明的实施例可以在 系统中的其它设备(例如独立的总线代理)中实现,或者分布在整个网络 中。主存储器可以是动态随机访问存储器(DRAM)、硬盘驱动器 (HDD) 220或包含各种存储设备和技术的远离所述计算机系统的存储源230。所述缓存可以位于所述处理器中或其附近,例如在处理器本地总线 207上。另外,所述缓存可以由速度较快的存储单元(例如六电晶体 (6T)单元或其它具有近似等同或更快访问速度的存储单元)组成。
图3示出了其中可以使用本发明的至少一个实施例的总线代理。具体 地说,图3所示的微处理器300包括本发明的至少一个实施例305的一个 或更多组成部分。在图3的微处理器中还示出了执行单元310,其在微处 理器中执行例如存储操作的操作。所述执行单元的精确或相对位置以及本 发明的实施例的组成部分并不限于图3所述。
图4示出了本发明的一个实施例,其中GoSB 401被用于跟踪存储操 作并存储已经变为全局可观测的相应数据。图4的GoSB的每个条目405 包括用于条目引用的索引值字段406、用于指示所述存储操作的目标地址 的地址值字段407、用于存储与所述存储操作相关联的数据的数据值字段 408、用于计算还未变为可被全局观测的存储操作的数目的计数字段409, 以及用于指示相应于可被全局观测的存储操作的数据是否可用、且是否被 存储在GoSB的数据字段中的有效位字段410。
图4还示出了未提交(non-committed)存储队列(NcSQ) 415。 NcSQ存储相应于己经被存储在线填充缓冲器(LFB) 420或第一级缓存 425中,但是还未变为可被全局观测的存储操作的数据和地址信息。在图 4所示的实施例中,NcSQ是先进先出(FIFO)队列,其所具有的条目包 含用于存储相应于特定存储操作的地址信息的地址字段416、用于存储 相应于所述存储操作的数据的数据字段417,以及用于存储用于引用 GoSB中的相应条目的索引信息的GoSB索引字段418。
在图4所示的实施例中,从存储缓冲器430发射、传输或读取存储操 作,在NcSQ中存储存储操作,Ll缓存或LFB和相应的条目在GoSB中被 分配。在存储数据变为可被全局观测后,所述数据从NcSQ被存储到相应 的GoSB条目中。
当相应于特定目标地址的存储数据被存储在NcSQ中时,GoSB的相 应计数字段被增加。当存储操作变为可被全局观测时,相应的存储地址和 数据从NcSQ被删除,而且GoSB中的相应计数字段被减少。在GoSB计数字段到达0后,相应的GoSB条目可以被释放并被重新分配给新的存储 操作。
在图4所示的本发明的实施例中, 一个或更多例如微处理器的总线代 理可以对Ll缓存和LFB中的每一个实施监听以获得存储数据。在Ll缓 存和LFB的每个条目中都有GoSB索引字段426和GoSB有效字段427。 GoSB索引字段向监听代理表明GoSB中相应存储数据的位置。GoSB有效 字段表明相应的GoSB索引是否有效,以及它是否还不可被全局观测到。 GoSB还可以被总线代理实施监听以获得所述数据,并且提供数据以供监 听代理使用,或指向供监听代理使用的最有效数据。如果Ll缓存或LFB 和GoSB都包含被请求的数据,那么GoSB向发出请求的代理提供所述数 据。
在图5所示的本发明的实施例中,GoSB索引和GoSB有效字段没有 被存储在Ll缓存和LFB条目中,相反地,GoSB索引501字段被存储在 存储缓冲器的条目中。在图5所示的实施例中,只要存储操作变为非推测 性的或"高级的",GoSB条目就可以被分配给存储操作,而无需等待直 到存储操作从存储缓冲器被读取、传输或发射到LFB或Ll缓存。
可替换地,在相应存储缓冲器字段被访问时,通过使用逻辑来指向特 定的GoSB索引字段,GoSB索引字段501可以逻辑上与存储缓冲器相关 联,而物理上与所述存储缓冲器并不位于同一结构中。在上述任何一种情 况下,与存储缓冲器的各条目相关联的GoSB索引字段允许监听代理及早 在GoSB中定位存储数据,以使得只要数据在GoSB中变为可被全局观 测,监听代理就可以获取该数据。在图5所示的实施例中,可以在相应存 储数据被存储在存储缓冲器之前发射专有读取(RFO)操作。图5所述的 实施例的其它方面与已经参照图4所述的本发明的实施例讨论过的那些方 面类似。
图6的流程图示出了与本发明的至少一个实施例相关联的操作。参照 图6,在操作601,从微处理器执行逻辑发射第一存储操作,并且相应数 据被存储在存储缓冲器条目中。在操作602,在从存储缓冲器发射第一存 储操作之前或之后,分配GoSB条目并执行RFO操作,以获得对GoSB以及Ll缓存或LFB中的一条线的排他性所有权。然后,第一存储操作数据 被存储在NcSQ中以及LFB或Ll缓存条目中。在操作603,相应的GoSB
计数器被增加。
在操作604发射第二存储操作,并且在存储缓冲器条目中存储相应数 据。在操作605,在从存储缓冲器发射第二存储操作之前或之后,分配 GoSB条目并执行RFO操作,以获得对GoSB以及Ll缓存或LFB中的一 条线的排他性所有权。然后,第二存储操作被移动到NcSQ中以及LFB或 Ll缓存条目中,并且在操作606,相应的GoSB计数器被增加。
在本发明的至少一个实施例中,第一和第二存储操作数据在同一时期 驻留在LFB和Ll缓存中。在操作607,如果在第一存储操作的数据为可 被全局观测前,相应于第二存储的RFO数据从Ll缓存或LFB返回,那么 第二存储操作就会被并入Ll和/或LFB的合适条目中,而非GoSB的相应 条目中。但是,在操作608,如果在第二存储操作的RFO数据从Ll缓存 或LFB被返回之前,第一存储操作的数据变为可被全局观测,那么第二存 储操作的数据就会被并入GoSB的合适条目。计数器被增加或减少,以表 明与在GoSB中分配的特定存储操作相关联的尚未变为或已经变为可被全 局观测的数据的数量。
可以用多种方式实现这里图示的本发明的任何或全部实施例,包括而 不限于使用互补金属氧化物半导体(CMOS)电路设备的逻辑(硬 件);存储在存储介质中的指令(软件),当其被例如微处理器的机器执 行时,使得该微处理器执行此处所描述的操作;或者是硬件和软件的组 合。这里引用的"微处理器"或"处理器"是指任何这样的机器或设备 (包括CMOS设备),其在接收到一个或更多输入信号或指令时能够执行 操作。
虽然本发明是结合图示的实施例进行描述的,但是,本描述不应当被 解释为限制性的。对于本发明所属领域的技术人员来说显而易见的对图示 实施例以及其它实施例的各种修改被视为落在本发明的精神和范围中。
权利要求
1.一种具有强有序指令体系结构的处理器,包括存储缓冲器,不论先于第二数据值从所述存储缓冲器中被读取的第一数据值是否已经变为可被全局观测,所述第二数据值都从所述存储缓冲器中被读取并被存储到缓存中;以及全局观测存储缓冲器,用于当所述第一和第二数据值变为可被全局观测之后,仅存储所述第一和第二数据值,其中所述全局观测存储缓冲器包括对应于每个将要被存储在所述全局观测存储缓冲器中的数据值的索引字段。
2. 如权利要求1所述的处理器,其中所述缓存包括第一级缓存和线填 充缓冲器之一,其中所述线填充缓冲器用于存储将要被写入第一级缓存的 数据。
3. 如权利要求2所述的处理器,其中所述第一级缓存和线填充缓冲 器中的之一或二者通过点到点总线被耦合到第一总线代理,其中所述第一 总线代理用于在所述第一总线代理能够在所述第一级缓存或线填充缓冲器 中检测到所述第一和第二数据值中的之一或二者之前,检测所述第一和第 二数据值中的之一或二者。
4. 一种用在具有强有序指令体系结构的处理器中的装置,包括 分配逻辑,用于分配全局观测存储缓冲器中的条目,以在可被全局观测的数据对应的存储操作变为非推测性的之后,可被全局观测的数据从存 储缓冲器被读取之前,存储可被全局观测的数据;耦合到所述全局观测存储缓冲器的缓存,用于在可被全局观测的数据 变为可被全局观测前存储所述数据;和专有读取逻辑,用于在可被全局观测的数据被存储在所述缓存中之前 获得对所述缓存中的一条高速缓存线的排他性所有权。
5. 如权利要求4所述的装置,其中所述缓存包括第一级缓存和线填充 缓冲器之一,其中所述线填充缓冲器用于存储将要被写入第一级缓存的数 据。
6. 如权利要求5所述的装置,其中所述第一级缓存和线填充缓冲器 中的之一或二者通过点到点总线被耦合到第一总线代理,其中所述第一总 线代理用于在所述第一总线代理能够在所述第一级缓存或线填充缓冲器中 检测到所述第一和第二数据值中的之一或二者之前,检测所述第一和第二 数据值中的之一或二者。
7. —种用于发射指令的方法,所述指令用于执行强有序存储器操作,该方法包括发射用于执行第一存储操作的指令;在存储缓冲器中存储与所述第一存储操作相关联的第一数据; 发射用于执行第二存储操作的指令;在所述存储缓冲器中存储与所述第二存储操作相关联的第二数据; 在存储单元中存储所述第一数据;以及在所述第一数据被存储在所述存储单元中且不可被全局观测的期间, 在所述存储单元中存储所述第二数据。
8. 如权利要求7所述的方法,其中所述存储单元包括第一级缓存和线 填充缓冲器之一。
9. 如权利要求8所述的方法,其中所述第一级缓存和线填充缓冲器 中的之一或二者通过点到点总线被耦合到第一总线代理,其中所述第一总 线代理用于在所述第一总线代理能够在所述第一级缓存或线填充缓冲器中 检测到所述第一和第二数据中的之一或二者之前,检测所述第一和第二数 据中的之一或二者。
全文摘要
本发明公开了一种存储操作的体系结构,其改善了存储操作延迟,并提高了专有读取(RFO)的吞吐率。本发明的实施例涉及通过实现RFO操作的乱序发射和更有效地使用存储缓冲器延迟周期来改善微处理器的存储性能的方法和装置。
文档编号G06F12/00GK101539889SQ200910126210
公开日2009年9月23日 申请日期2005年1月28日 优先权日2004年3月30日
发明者玲 岑, 弗拉基米尔·彭特科维克西, 戴维·赵, 维韦克·加尔格, 迪普·布什 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1