用于基于已删除命令确定命令速率的系统和方法_2

文档序号:8402761阅读:来源:国知局
节点根据处理器单元提供的一致性范围来窥探命令。
[0030] 在一个或多个实施例中,数据处理系统100可以包括未示出的其它组件,例如互 连桥、非易失性存储装置、用于连接到网络的端口、附加设备等。例如,这些其它组件不是理 解在此描述的实施例所必需的,它们未在图1中示出或进一步讨论。但是,还应该理解,本 公开提供的增强适用于不同架构的高速缓存一致数据处理系统,并且决不限于图1中所示 的广义数据处理系统架构。
[0031] 现在转到图2,示出根据一个或多个实施例的示例性处理器单元112。如图所示, 处理器单元112可以包括一个或多个处理器核心220,它们执行选定指令集架构(ISA)的 指令。在一个或多个实施例中,多级别易失性存储器层次结构可以支持处理器核心220的 操作,该层次结构在其最低级别具有共享系统存储器114,并且在其较高级别具有两个或更 多级别的高速缓冲存储器,该高速缓冲存储器可以缓存位于可缓存地址中的数据和/或指 令。在一个或多个实施例中,每个处理器核心220的高速缓冲存储器层次结构包括相应的 贯穿存储(store-through) 1级(LI)高速缓存222,其在处理器核心220中并且为处理器核 心220所私有;内部存储(store-in) 2级(L2)高速缓存230,其为处理器核心220所私有; 以及可能共享3级(L3)受害者高速缓存240,其可以缓冲L2逐出。
[0032] 如图所示,处理器单元112经由总线接口(BI) 250耦合到互连116。例如,处理器 单元112可以经由BI 250和互连116,与其它处理器单元112和系统存储器114进行信息 通信。在一个实例中,所述信息可以包括请求数据的命令。在另一个实例中,所述信息可以 包括与这种请求关联的一致性响应。在另一个实例中,所述信息可以包括与这种请求关联 的数据。如图所示,互连116可以包括FBC 117。
[0033] 如图所示,处理器单元112可以还包括窥探逻辑260、响应逻辑262和转发逻辑 264。窥探逻辑260可以耦合到或者形成L2高速缓存230和L3高速缓存240的一部分,其 可以负责确定个体一致性响应以及响应于在互连116上窥探的请求而执行的动作。响应逻 辑262可以负责基于从请求接收者接收的个体一致性响应,确定对在互连116上发出的请 求的组合响应。此外,转发逻辑264可以选择性地在其本地互连116和系统互连(例如,图 1的互连120、图3E的互连330等)之间转发通信。
[0034] 现在转到图3A-3E,示出根据一个或多个实施例的数据处理系统300中的命令 和响应数据流。图3A-3D共同示出到达数据处理系统300的所有处理单元的系统范围 的命令和响应流。如图3A-3E中所示,数据处理系统300可以包括多个多处理(MP)系 统310A-310D。MP系统310A又包括处理节点310A1-310A4, MP系统310B包括处理节点 310B1-310B4, MP系统310C包括处理节点310C1-310C4,并且MP系统310D包括处理节点 310D1-310D4。在一个或多个实施例中,每个MP系统310A-310D可以包括如图1中所示的 一个或多个数据处理系统100。
[0035] 在一个或多个实施例中,可以通过将命令分组反映到一个MP系统和/或一组MP 系统中的所有处理器单元,在数据处理系统300中维护和/或实现高速缓存一致性。接收 反映的命令(例如,命令消息)的每个处理器单元可以发送部分响应(例如,部分响应消 息),这些部分响应可以包括与窥探器状态关联的信息、窥探器的处理器单元,和/或在窥 探器的处理器单元中保存的高速缓存行(如果有,并且如果由传输类型指定)。在一个或多 个实施例中,发送部分响应消息的顺序可以与接收反映的命令的顺序匹配。
[0036] 如图3A中所示,处理节点310A1可以将命令(请求)广播到处理节点310B1、 310C1、310D1和310A2-310A4。在一个或多个实施例中,处理节点310A1、310B1、310C1和 310D1可以是或者充当一个或多个命令的相应MP系统310A-310D的主处理节点。在一个或 多个实施例中,处理节点310BU310C1和310D1可以是中心节点和/或远程节点,并且处理 节点310B2-310B4、310C2-310C4和310D2-310D4可以是叶节点。在一个或多个实施例中, 处理节点310A2-310A4可以是附近节点。
[0037] 如图3B中所示,充当命令的主处理节点,处理节点310B1可以将命令广播到其MP 系统310B中的处理节点310B2-310B4,处理节点310C1可以将命令广播到其MP系统310C 中的处理节点310C2-310C4,并且处理节点310D1可以将命令广播到其MP系统310D中的处 理节点 310D2-310D4。
[0038] 在一个或多个实施例中,处理节点 310A2-310A4、310B1-310B4、310C1-310C4 和 310D1-310D4可以确定其对广播的命令的相应个体一致性响应。如图3C中所示,处理节点 310A2-310A4可以为主处理节点310A1提供其相应的响应,处理节点310B2-310B4可以为 主处理节点310B1提供其相应的响应,处理节点310C2-310C4可以为主处理节点310C1提 供其相应的响应,并且处理节点310D2-310D4可以为主处理节点310D1提供其相应的响应。 因为这些一致性响应表示仅来自接收命令的范围的子集的响应,所以根据一个或多个实施 例,来自处理节点 310A2-310A4、310B2-310B4、310C2-310C4 和 310D2-310D4 的一致性响应 可以称为部分响应。
[0039] 在一个或多个实施例中,处理节点310BU310C1和310D1可以将接收的部分响应 组合成相应的累积部分响应。如图3D中所示,每个处理节点310BU310C1和310D1可以为 处理节点310A1提供其累积部分响应。在处理节点310A1接收累积部分响应之后,处理节 点310A1可以将累积部分响应组合成组合响应。
[0040] 在一个或多个实施例中,可以过度使用互连总线(例如,如下面参考图4讨论的), 可以删除某些命令,并且可以针对该处理节点或一组处理节点返回部分响应(例如,指示 删除:"rty_dropped_rcmd"的反映的命令的响应)。在一个实例中,如果主处理节点超过可 编程重试阈值,则机制和/或系统可以回退命令速率以便允许一个或多个处理节点向前进 展。在另一个实例中,当第一处理节点具有的带宽不足以广播第一处理节点从第二处理节 点接收的命令时,第一处理节点可以返回重试部分响应(例如,"rty_dropped_rcmd")。该 响应可以指示未将命令广播到第一处理节点或一组处理节点。
[0041] 在一个或多个实施例中,可以将部分响应与其它处理节点的部分响应相组合,并 且rty_dropped_rcmd的存在可能不一定导致命令失败。例如,即使未在系统中的所有处理 节点上广播命令,命令仍然可以成功。例如,只要所有需要的参与方(例如,HPC(最高一致 性点)和/或LPC (最低一致性点)等)能够窥探并且为命令提供非重试部分响应,操作便 可以成功。
[0042] LPC在此定义为充当存储块的库的存储设备或I/O设备。如果存储块不存在HPC, 则LPC保存存储块的真实影像,并且有权许可或拒绝用于生成存储块的其它缓存副本的请 求。对于图1-2的数据处理系统实施例中的典型请求,LPC将是保存所参考的存储块的系 统存储器114的存储控制器。根据一个或多个实施例,HPC在此定义为唯一标识的设备,其 缓存存储块(其可以与LPC处的对应存储块一致也可以不一致)的真实映像,并且有权许 可或拒绝用于修改存储块的请求。在描述上,HPC还可以例如响应于命令,为请求者提供存 储块的副本。
[0043] 例如,处理节点310C的处理器单元112的L3高速缓存240可以存储第一数据, 并且处理节点310A的处理器单元112可以经由广播命令(其例如可以具有系统或组广播 范围)请求第一数据。如果L3高速缓存240是第一数据的最高一致性点,则L3高速缓存 240可以使用指示它将为处理节点310A的处理器单元112提供第一数据的部分响应,响 应处理节点310A的命令。根据一个或多个实施例,在组合响应之前或者响应于组合响应, 处理节点3IOC可以经由互连330为处理节点3IOA提供第一数据,互连330耦合MP系统 310A-310D,如图3E中所示。
[0044] 同样,在第二实例中,处理器单元112D3(图1中所示)的L2高速缓存230可以存 储第二数据,并且处理器单元112D4可以广播对第二数据的请求(其中请求范围可以限于 仅处理节点IIOD (
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1