提高存储性能的制作方法

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

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


通过附图,以举例而非限制的方式来图示本发明的实施例,其中相似的标号表明类似的元件,并且图1示出了用于在强有序微处理器体系结构中处理被发射的存储操作的现有技术的缓存体系结构。
图2示出了其中可以使用本发明的至少一个实施例的计算机系统。
图3示出了其中可以使用本发明的至少一个实施例的总线代理。
图4示出了本发明的一个实施例,其中全局观测存储缓冲器(GoSB)被用来跟踪存储操作并存储已经变为可被全局观测的相应数据值。
图5示出了本发明的一个实施例,其中GoSB索引和GoSB有效字段没有被存储在第一级(L1)缓存或线填充缓冲器(LFB)条目中,相反地,GoSB索引字段被存储在存储缓冲器的条目中。
图6的流程图示出了与本发明的至少一个实施例相关联的操作。
具体实施例方式
本发明的实施例涉及微处理器体系结构。更具体地说,本发明的实施例涉及通过实现专有读取的乱序发射和更有效地使用存储缓冲器延迟周期来提高微处理器中的存储性能的方法和装置。
为了在提高存储缓冲器效率的同时辅助乱序RFO操作,本发明的至少一个实施例涉及使用例如全局观测存储缓冲器(GoSB)的存储介质,以跟踪已经变为可被全局观测的存储数据。在GoSB中跟踪可被全局观测的数据使得存储数据能够被存储在可监听的存储设备(例如第一级(L1)缓存和线填充缓冲器(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中存储存储操作,L1缓存或LFB和相应的条目在GoSB中被分配。在存储数据变为可被全局观测后,所述数据从NcSQ被存储到相应的GoSB条目中。
当相应于特定目标地址的存储数据被存储在NcSQ中时,GoSB的相应计数字段被增加。当存储操作变为可被全局观测时,相应的存储地址和数据从NcSQ被删除,而且GoSB中的相应计数字段被减少。在GoSB计数字段到达0后,相应的GoSB条目可以被释放并被重新分配给新的存储操作。
在图4所示的本发明的实施例中,一个或更多例如微处理器的总线代理可以对L1缓存和LFB中的每一个实施监听以获得存储数据。在L1缓存和LFB的每个条目中都有GoSB索引字段426和GoSB有效字段427。GoSB索引字段向监听代理表明GoSB中相应存储数据的位置。GoSB有效字段表明相应的GoSB索引是否有效,以及它是否还不可被全局观测到。GoSB还可以被总线代理实施监听以获得所述数据,并且提供数据以供监听代理使用,或指向供监听代理使用的最有效数据。如果L1缓存或LFB和GoSB都包含被请求的数据,那么GoSB向发出请求的代理提供所述数据。
在图5所示的本发明的实施例中,GoSB索引和GoSB有效字段没有被存储在L1缓存和LFB条目中,相反地,GoSB索引501字段被存储在存储缓冲器的条目中。在图5所示的实施例中,只要存储操作变为非推测性的或“高级的”,GoSB条目就可以被分配给存储操作,而无需等待直到存储操作从存储缓冲器被读取、传输或发射到LFB或L1缓存。
可替换地,在相应存储缓冲器字段被访问时,通过使用逻辑来指向特定的GoSB索引字段,GoSB索引字段501可以逻辑上与存储缓冲器相关联,而物理上与所述存储缓冲器并不位于同一结构中。在上述任何一种情况下,与存储缓冲器的各条目相关联的GoSB索引字段允许监听代理及早在GoSB中定位存储数据,以使得只要数据在GoSB中变为可被全局观测,监听代理就可以获取该数据。在图5所示的实施例中,可以在相应存储数据被存储在存储缓冲器之前发射专有读取(RFO)操作。图5所述的实施例的其它方面与已经参照图4所述的本发明的实施例讨论过的那些方面类似。
图6的流程图示出了与本发明的至少一个实施例相关联的操作。参照图6,在操作601,从微处理器执行逻辑发射第一存储操作,并且相应数据被存储在存储缓冲器条目中。在操作602,在从存储缓冲器发射第一存储操作之前或之后,分配GoSB条目并执行RFO操作,以获得对GoSB以及L1缓存或LFB中的一条线的排他性所有权。然后,第一存储操作数据被存储在NcSQ中以及LFB或L1缓存条目中。在操作603,相应的GoSB计数器被增加。
在操作604发射第二存储操作,并且在存储缓冲器条目中存储相应数据。在操作605,在从存储缓冲器发射第二存储操作之前或之后,分配GoSB条目并执行RFO操作,以获得对GoSB以及L1缓存或LFB中的一条线的排他性所有权。然后,第二存储操作被移动到NcSQ中以及LFB或L1缓存条目中,并且在操作606,相应的GoSB计数器被增加。
在本发明的至少一个实施例中,第一和第二存储操作数据在同一时期驻留在LFB和L1缓存中。在操作607,如果在第一存储操作的数据为可被全局观测前,相应于第二存储的RFO数据从L1缓存或LFB返回,那么第二存储操作就会被并入L1和/或LFB的合适条目中,而非GoSB的相应条目中。但是,在操作608,如果在第二存储操作的RFO数据从L1缓存或LFB被返回之前,第一存储操作的数据变为可被全局观测,那么第二存储操作的数据就会被并入GoSB的合适条目。计数器被增加或减少,以表明与在GoSB中分配的特定存储操作相关联的尚未变为或已经变为可被全局观测的数据的数量。
可以用多种方式实现这里图示的本发明的任何或全部实施例,包括而不限于使用互补金属氧化物半导体(CMOS)电路设备的逻辑(硬件);存储在存储介质中的指令(软件),当其被例如微处理器的机器执行时,使得该微处理器执行此处所描述的操作;或者是硬件和软件的组合。这里引用的“微处理器”或“处理器”是指任何这样的机器或设备(包括CMOS设备),其在接收到一个或更多输入信号或指令时能够执行操作。
虽然本发明是结合图示的实施例进行描述的,但是,本描述不应当被解释为限制性的。对于本发明所属领域的技术人员来说显而易见的对图示实施例以及其它实施例的各种修改被视为落在本发明的精神和范围中。
权利要求
1.一种处理器,包括用于存储数据的第一存储单元;和耦合到所述第一存储单元的第二存储单元,用于仅在所述数据变为可被总线代理检测到后存储所述数据。
2.如权利要求1所述的处理器,还包括一个指示器,用于向所述第二存储单元表明所述数据是否已经存储在所述第一存储单元中。
3.如权利要求1所述的处理器,其中所述第一存储单元是线填充缓冲器。
4.如权利要求1所述的处理器,其中所述第一存储单元是第一级缓存。
5.如权利要求1所述的处理器,其中所述第一存储单元是用于存储将要被存储在总线代理中的数据的存储缓冲器。
6.如权利要求2所述的处理器,其中所述指示器是用于存储不能被总线代理检测到的数据的先进先出队列。
7.如权利要求6所述的处理器,其中所述第二存储单元是包括了计数器的缓冲器,所述计数器用于计算所述先进先出队列中条目的数目。
8.一种具有强有序指令体系结构的处理器,包括存储缓冲器,不论先于第二数据值从所述存储缓冲器中被读取的第一数据值是否已经变为可被全局观测,所述第二数据值都从所述存储缓冲器中被读取并被存储到缓存中。
9.如权利要求8所述的处理器,还包括全局观测存储缓冲器,用于当所述第一和第二数据值变为可被全局观测之后,仅存储所述第一和第二数据值。
10.如权利要求9所述的处理器,还包括未提交存储队列,用于存储在所述缓存中存储的但尚未被全局观测到的数据。
11.如权利要求10所述的处理器,其中所述全局观测存储缓冲器包括相应于存储在所述未提交存储队列中的数据数量的计数值。
12.如权利要求9所述的处理器,其中所述全局观测存储缓冲器包括对应于每个将要被存储在所述全局观测存储缓冲器中的数据值的索引字段,以及相应于将要被存储在所述全局观测存储缓冲器中的数据值的写入位置的地址字段。
13.如权利要求10所述的处理器,其中所述未提交存储队列包括索引字段,用于存储指示所述全局观测存储缓冲器中的位置的索引值,所述位置将在相应的数据值变为可被全局观测后用于存储该数据值。
14.如权利要求13所述的处理器,其中所述缓存包括第一级缓存。
15.如权利要求13所述的处理器,其中所述缓存包括线填充缓冲器,用于存储将要被写入第一级缓存的数据。
16.如权利要求13所述的处理器,其中当数据被全局观测到以后,所述数据从所述未提交存储队列中删除。
17.如权利要求15所述的处理器,其中在所述第一级缓存或线填充缓冲器向监听代理提供数据值之前,所述全局观测存储缓冲器向所述监听代理提供所述数据值。
18.一种计算机系统,包括存储第一指令和第二指令的存储单元,所述第一指令用于在至少一个总线代理中存储第一数据值,所述第二指令用于当所述第一数据值被存储在至少一个总线代理后,在至少一个总线代理中存储第二数据值;第一级缓存和线填充缓冲器,用于在所述第一数据值和所述第二数据值中的任何一个可被至少一个总线代理检测到之前同时存储所述第一和第二数据值;和第一总线代理,用于在所述第一总线代理能够在所述第一级缓存或线填充缓冲器中检测到所述第一和第二数据值中的之一或二者之前,检测所述第一和第二数据值中的之一或二者。
19.如权利要求18所述的计算机系统,还包括用于在所述第一和第二数据值变为可被至少一个总线代理检测到之后存储所述第一和第二数据值的存储结构。
20.如权利要求18所述的计算机系统,其中所述第一总线代理将监听所述第一级缓存和线填充缓冲器中的之一或二者,以获得所述第一和第二数据值中的之一或二者。
21.如权利要求19所述的计算机系统,其中,所述第一和第二数据值按照程序顺序被存储在至少一个总线代理中。
22.如权利要求21所述的计算机系统,其中,所述第一和第二指令按照程序顺序被存储在所述存储单元中。
23.如权利要求22所述的计算机系统,其中所述第一级缓存和线填充缓冲器中的之一或二者通过点到点总线被耦合到所述第一总线代理。
24.如权利要求22所述的计算机系统,其中所述存储单元是动态随机访问存储器。
25.如权利要求24所述的计算机系统,其中所述第一级缓存和线填充缓冲器中的之一或二者位于微处理器中。
26.如权利要求25所述的计算机系统,其中所述第一总线代理包括从包含微处理器、动态随机访问存储器、磁存储介质、总线仲裁设备和无线存储介质的列表中选择的装置。
27.一种装置,包括分配逻辑,用于分配全局观测存储缓冲器中的条目,以在所述数据对应的存储操作变为非推测性的之后,所述数据从存储缓冲器被读取之前,存储可被全局观测的数据;耦合到所述全局观测存储缓冲器的缓存,用于在所述数据变为可被全局观测前存储所述数据;和专有读取逻辑,用于在所述数据被存储在所述缓存中之前获得对所述缓存中的一条线的排他性所有权。
28.如权利要求27所述的装置,其中所述专有读取逻辑将在所述全局观测存储缓冲器的条目被分配前,获得对缓存中的所述线的排他性所有权。
29.如权利要求28所述的装置,其中所述存储缓冲器包括用于表明所述全局观测存储缓冲器中被分配的条目的位置的索引。
30.如权利要求29所述的装置,其中如果所述数据变为可被全局观测的,那么所述全局观测存储缓冲器中被分配的条目将被重新分配。
31.一种用于发射强有序存储器操作的方法,包括发射第一存储操作;在存储缓冲器中存储与所述第一存储操作相关联的第一数据;发射第二存储操作;在所述存储缓冲器中存储与所述第二存储操作相关联的第二数据;在存储单元中存储所述第一数据;以及在所述第一数据被存储在所述存储单元中且不可被全局观测的期间,在所述存储单元中存储所述第二数据。
32.如权利要求31所述的方法,还包括发射专有读取操作,以在所述第一和第二数据其中之一被存储在所述存储单元中之前,获得对所述存储单元中的一条线的排他性控制。
33.如权利要求32所述的方法,还包括在所述第一或第二数据变为可被全局观测后,分配全局观测存储缓冲器中的条目。
34.如权利要求33所述的方法,还包括更新计数器,以反映存储在所述存储单元中但不能被全局观测的、对应于存储地址位置的数据值的数量。
35.如权利要求34所述的方法,其中,在所述计数器等于0后,所述条目被重新分配以存储其它数据。
36.如权利要求35所述的方法,还包括更新未提交存储队列,以表明数据值的数量。
37.如权利要求36所述的方法,其中所述存储单元是第一级缓存。
38.如权利要求36所述的方法,其中所述存储单元是线填充缓冲器。
全文摘要
本发明公开了一种存储操作的体系结构,其改善了存储操作延迟,并提高了专有读取(RFO)的吞吐率。本发明的实施例涉及通过实现RFO操作的乱序发射和更有效地使用存储缓冲器延迟周期来改善微处理器的存储性能的方法和装置。
文档编号G06F9/30GK1677341SQ20051000513
公开日2005年10月5日 申请日期2005年1月28日 优先权日2004年3月30日
发明者弗拉基米尔·彭特科维克西, 岑玲, 维韦克·加尔格, 迪普·布什, 戴维·赵 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1