一种操作数据处理系统的方法、数据处理系统和处理器的制造方法_3

文档序号:8318996阅读:来源:国知局
存器中用于相关联的缓存行的HA位。当L2缓存器中HA位被断言的缓存行被逐出到L3缓存器时,L3缓存器中与该缓存行相关联的HA位被断言。在该例子中,LI缓存器不需要HA位。在检查点处,缓存器漫游操作需要遍历L2和L3缓存器,将所有具有被断言的HA位的缓存行的物理地址写入环形缓冲区,并在操作结束时对所有HA位解除断言。
[0041]上述说明描述了增强缓存器硬件以确保缓存器中的环形缓冲区以定期的间隔存储自上次检查点以来已经被指定处理器核修改了的所有存储器位置的列表。修改了的存储器位置的列表可用于提高系统性能和可靠性。修改了的存储器位置的列表(存储在“环形缓冲区”、“HA日志”或“HA表”中)由支持缓存器维护,例如L2/L3缓存器,修改了的缓存器行保存HA数据。HA日志和HA数据由消费者核进行处理以提供系统可靠性和冗余。通常,当产生HA日志时,HA产生器已经将HA日志直接从缓存器中的环形缓冲区写入主存储器。当HA数据从与HA生产者核相关联的缓存器受到损害时,HA数据还通常已经被写入主存储器。
[0042]为了处理HA日志和HA数据,消费者核通常已从主存储器中读取HA日志和HA数据。相对于在此所公开的技术,传统的方案需要多次访问主存储器,造成存储器资源的相对大的带宽成本,消耗功率,并增加消费者核处理HA日志和HA数据的时间。在现代大型服务器中,存储器资源是宝贵的,存储器功率是系统功率的主要组成。根据本公开,处理HA日志和HA数据的时间被减少,这增加了系统可致力于其它任务的时间。
[0043]根据本发明的一个或多个实施例,与HA生产者核相关联的生产者缓存器将HA日志(从生产者缓存器的环形缓冲区)直接移动到HA消费者核的缓存器中。根据各个方面,生产者缓存器还将在生产者缓存器中存储的HA数据直接移动到消费者核的缓存器中。这样,消除了在生产者缓存器将HA日志和HA数据移出到主存储器后消费者核必须从主存储器获取HA日志和HA数据的操作。因此,减少了消费者核执行HA系统备份所需要的时间,降低了存储器资源上的负担,并减少了与实施HA相关联的功率消耗。
[0044]在各种实施例中,HA生产者缓存器被配置为识别应当被放进HA日志中的缓存行地址。对于HA日志条目,HA生产者包括识别HA日志的位置的硬件寄存器。在一个或多个实施例中,HA生产者缓存器利用系统总线“缓存器注入(cache inject) ”命令或“强制的缓存器注入(forced cache inject) ”命令来连贯地将HA日志条目直接安装在HA消费者核的缓存器内(而不是将HA日志条目写入主存储器)。缓存器注入命令被配置为维持一致性,因为生产者核在HA日志写入时可能并不具有HA日志缓存行的所有权。众所周知,缓存器注入命令是专用的系统总线命令,其帮助将缓存行直接写入缓存器(例如,消费者缓存器)。HA数据可以根据生产者缓存器的目录中用于跟踪哪些缓存行被HA生产者核修改的“HA位”来与非HA数据区分。
[0045]当生产者缓存器损害HA数据时,横向逐出(lateral cast-out) (LCO)命令可用于将HA数据连贯地迁移到HA消费者核的缓存器(处于相同级别,例如,L2-L2、L3-L3),而不是主存储器。LCO命令允许生产者缓存器专门指定消费者核的缓存器以用于所有HA数据。在一个或多个实施例中,LCO命令用于在生产者核已经具有HA数据的所有权时迁移HA数据,LCO更有效。消费者核在处理HA日志(通过正常负载)时会发现HA日志缓存行条目已经在它的第二级(L2)和第三级(L3)缓存器中,这最小化了访问HA日志所需要的时间(HA日志指向HA数据缓存行)。当消费者核启动HA数据处理时,那些HA数据缓存行被发现已经连贯地安装在消费者核缓存器中(例如,消费者核的L2和L3缓存器)。将HA日志和HA数据直接从生产者缓存器移动到消费者缓存器极大地降低了与消费者核处理执行HA系统的HA备份所需要的HA日志和HA数据相关联的系统总线流量和延迟。
[0046]参照图1,示出了示例性的数据处理环境100,其包括数据处理系统110,根据本公开的一个或多个实施例,该数据处理系统110被配置为经由非阻塞通道在脏地址数据结构(例如,脏地址表(DAT))中记录高可用性(HA)数据(其在缓存器漫游期间还没有被记录在HA日志中)的地址。如在此所使用的,DAT用于存储包括HA数据的修改了的缓存行的地址,并通常可被认为与HA日志同步。应当知道,HA日志可以驻留在多个位置中。数据处理系统110可以采用各种形式,诸如工作站、膝上型计算机系统、笔记本计算机系统、桌面型计算机系统或服务器和/其集群。数据处理系统110包括一个或多个处理单元或处理器102 (它们每一个可包括用于执行程序代码的一个或多个处理器核),其连接到数据存储子系统104、(可选地)显示器106、一个或多个输入设备108、网络适配器109。数据存储子系统104可例如包括适当数量的各种存储器(例如,动态随机存取存储器(DRAM)、静态RAM(SRAM)和只读存储器(ROM))和/或诸如磁盘或光盘驱动器的一个或多个大容量存储设备。
[0047]数据存储子系统104包括用于数据处理系统110的一个或多个操作系统(OS) 114。数据存储子系统104还可包括应用程序,诸如浏览器112 (其可选地包括定制插件以支持各种客户端应用)、用于管理一个或多个由不同OS镜像实例化的虚拟机(VM) 120的管理程序(或虚拟机监控器(VMM))116、以及其它应用(例如,字处理应用、演示应用、电子邮件应用)118。
[0048]显示器106可以例如是阴极射线管(CRT)或液晶显示器(IXD)。数据处理系统110的输入设备108可例如包括鼠标、键盘、触觉设备和/或触摸屏。网络适配器109支持数据处理系统I1利用诸如802.X、HTTP、简单邮件传输协议(SMTP)的一个或多个通信协议与一个或多个有线和/或无线网络进行通信。数据处理系统100被示为通过诸如因特网122的一个或多个有线或无线网络连接到向数据处理系统110的用户提供感兴趣的信息的多个文件服务器124和多个网页服务器126。数据处理环境100还包括一个或多个数据处理系统(DPS) 150,其以与数据处理系统110类似的方式进行配置。通常,数据处理系统150表示远离数据处理系统110并可执行OS镜像的数据处理系统,其可被链接到在数据处理系统110上执行的一个或多个OS镜像。
[0049]本领域技术人员知道在图1中描述的硬件组件和基本配置可以变化。在数据处理系统110内的示例性组件并不意味着是穷尽的,而是代表性的,以突出可用于实现本发明的组件。例如,其它设备/组件可用于添加到或者替代所描述的硬件。所描述的例子并不意味着暗示对当前所描述的实施例的体系结构或其它限制。
[0050]参照图2,更详细地说明数据处理系统(DPS) 110和150的相关组件。DPS 110和150可包括一个或多个处理器102,其中每一个都包括第一级(LI)指令缓存器,该第一级(LI)指令缓存器被连接到一个或多个例如可在数据存储子系统104中实现的其它缓存器级别(例如,第二级(L2)和第三级(L3)缓存器)。如图2所示,DPS 110包括生产者核202,其被连接到生产者缓存器(例如包括L2和L3缓存器)204。如所述的,生产者缓存器204可包括逐出引擎205、侦听干涉引擎206、环形缓冲区207和中间缓冲区208。同样,DPS 150包括消费者核212,其被连接到消费者缓存器(例如包括L2和L3缓存器)214。尽管生产者核202/生产者缓存器204和消费者核212/消费者缓存器214被表示为处于不同的数据处理系统中,但应当知道,生产者核202、生产者缓存器204、消费者核212和消费者缓存器214可以实现在包括多个处理器核的同一个数据处理系统中。
[0051]参照图3,生产者缓存器204被示为将HA数据302和HA日志304直角存储在消费者缓存器214中。HA数据302和HA日志304可被存储在同一个缓存器级别(例如L2或L3缓存器)或者可被存储在不同的缓存器级别。消费者缓存器214被示为响应于来自生产者缓存器204的横向逐出(LCO)命令而存储HA数据302。消费者缓存器214还被示为响应于来自生产者缓存器204的缓存器诸如命令而存储HA日志304。应当知道,HA数据302和HA日志304可以使用其它类型的操作来被直接从生产者缓存器204移动到消费者缓存器。总之,消费者核212处理HA日志304和HA数据302所需要的时间被极大地减少,因为消费者核212不必从主存储器获取HA日志304和HA数据302。
[0052]参照图4,描述了示例性的缓存器402,其包括目录404 (包括用于每个缓存行的标记和HA位)和阵列406 (包括数据)。应当知道,目录404还可以包括固有的状态信息、替换顺序信息和/或用于每个缓存行的其它标记(未示出)。如上所述,HA位表示缓存行是否需要从生产者缓存器204迁移到消费者缓存器214以用于处理。当与缓存行相关联的数据被生产者核202 (其是在生产者核模式下运行的处理器核)修改时,HA位被断言。在检查点,缓存器漫游操作(例如,由逐出引擎205执行)可遍历整个生产者缓存器204以检查用于每个缓存行的“HA位”。然后,具有被断言的HA位的每个缓存行的物理地址被写入HA日志304 (其可与环形缓冲区207对应)。在一个或多个实施例中,当HA日志满(或达到其它阈值,例如四分之三满)时,生产者缓存器204(例如响应于由侦听干涉引擎206发布的缓存器注入命令)将HA日志304移动到消费者缓存器214以用于后面的处理。
[0053]在各种实施例中,当HA数据302受到损害时(即,当缓存行从生产者缓存器204中逐出以为其它数据腾出空间时),生产者缓存器204 (例如响应于来自逐出引擎205的横向逐出命令的发布)将HA数据302移动到消费者缓存器214以用于以后的处理。可选择地,生产者缓存器204可以在损害之前(例如响应于横向逐出命令)将HA数据302移动到消费者缓存器214。在任何情况下,当启动HA处理时,消费者核212利用HA日志304以确定HA数据302的位置。
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1