首页> 中国专利> 用于在多高速缓存环境中管理高速缓冲存储器的方法和装置

用于在多高速缓存环境中管理高速缓冲存储器的方法和装置

摘要

公开了用以在多高速缓存环境中管理高速缓冲存储器的方法、装置、系统和制品。公开装置包括用以识别被通信连接到总线的远程高速缓冲存储器的远程高速缓存管理器、用以约束远程高速缓冲存储器以经由总线与主机高速缓冲存储器共享数据的委托管理器以及用以使主机高速缓冲存储器和远程高速缓冲存储器与公共锁定状态同步的锁定管理器。

著录项

  • 公开/公告号CN105453056A

    专利类型发明专利

  • 公开/公告日2016-03-30

    原文格式PDF

  • 申请/专利权人 英特尔公司;

    申请/专利号CN201380078978.3

  • 发明设计人 S.W.程;R.J.伍德鲁夫;

    申请日2013-09-19

  • 分类号G06F12/0871;G06F9/52;

  • 代理机构中国专利代理(香港)有限公司;

  • 代理人吕传奇

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-18 15:07:46

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-05-17

    授权

    授权

  • 2016-04-27

    实质审查的生效 IPC(主分类):G06F12/0871 申请日:20130919

    实质审查的生效

  • 2016-03-30

    公开

    公开

说明书

技术领域

本公开一般地涉及高速缓冲存储器管理,并且更特别地涉及用以在多高速缓存环境中管理高速缓冲存储器的方法和装置。

背景技术

近年来,在计算机(例如,服务器、个人计算机、服务器场等)中已经采用协处理器板来扩展此类计算机的一个或多个能力。协处理器板可包括布置在总线可插入附加卡上的任何数目的核、存储器和高速缓存。协处理器板允许计算机以可缩放的方式满足处理需求,只要可用总线接口常驻在主计算机上即可。

附图说明

图1是已知主计算机配置的示意图。

图2是用以在多高速缓存环境中管理高速缓冲存储器的主计算机配置的示意图。

图3是以符合本文公开的方法、装置、系统和制品的方式在多高速缓存环境中管理高速缓冲存储器的图2的示例性委托管理器的示意图。

图4是以符合本文公开的方法、装置、系统和制品的方式在多高速缓存环境中管理高速缓冲存储器的图2的示例性远程高速缓存客户端的示意图。

图5、6、7A、7B、8A、8B和8C是表示可被执行以在多高速缓存环境中管理高速缓冲存储器的示例性机器可读指令的流程图。

图9是可执行图5、6、7A、7B、8A、8B和8C的示例性机器可读指令以实现图2-4的示例性委托管理器和示例性远程高速缓存客户端的示例性处理器平台的框图。

具体实施方式

虽然协处理器板(在本文中有时称为集成众核(MIC)设备/节点)可被插入具有一个或多个可用总线接口(例如,外围部件互连(PCI)、快速PCI(PCI-E)等)的主计算机平台中,但此类协处理器板依赖于与主机平台相关联的一个或多个通信层以促进存储服务。通常,协处理器板不包括板上储存器(例如,硬盘驱动器)且替代地依赖于用于存储资源的主计算机。主计算机存储资源可包括一个或多个硬盘驱动器、光学驱动器、固态驱动器和/或到外部存储子系统(例如,网络附加储存(NAS))的网络连接。

通常由MIC节点通过采用和/或以其他方式结合主机总线上的仿真网络堆栈作为基于网络的文件系统(NBFS)(诸如网络文件系统(NFS)来访问主计算机存储资源。然而,NBFS实施方式引入了在处理向/从主计算机的读和/或写操作时负担一个或多个协处理器板的能力的软件开销、管理复杂性和带宽限制。图1是具有被与之连接的一个节点的已知主计算机配置100的示意图。在图1的所示示例中,配置100包括主计算机系统102,其具有被通信连接到节点106(例如,Intel?XeonPhi?协处理器板)的总线104(例如,PCI-E总线)。虽然图1的所示示例包括总线104,但本文公开的示例性方法、装置、系统和/或制品不限于此。在一些示例中,可经由一个或多个集群或集群结构互连来连接MIC。在其他示例中,可经由InfiniBand?集群互连和/或任何其他高速集群互连来实现总线104。示例性主机102包括虚拟文件系统(VFS)108以促进高速缓存管理和与示例性高速缓存110的通信,其中,示例性VFS108被通信连接到文件系统管理器112、仿真存储/网络层114以及物理储存器115(例如,存储器(RAM)、磁盘、硬盘驱动器等)。示例性存储/网络层114被通信连接到示例性总线104以允许对示例性节点106上的文件系统层发生读和/或写操作。

示例性节点106包括VFS116、文件系统管理器118和仿真存储/网络层120以促进高速缓存管理和与示例性节点高速缓存122的通信。在发生文件访问请求124(例如,被节点的一个或多个执行进程调用的用户文件访问请求等)的情况下,穿过所有的示例性VFS116、文件系统管理器118和仿真存储/网络层120。如上所述,节点采用主机的NBFS机制来促进存储读和/或写操作,这增加复杂性和带宽限制。例如,NBFS118包括要求调谐以允许总线104和/或总线接口之上的仿真的网络堆栈。另外,MIC节点通常被针对计算速度和/或效率进行优化,并且添加仿真网络层并不是很好地配合在MIC节点的受限板上管理系统(例如,系统管理控制器(SMC))内的本地部件。

图2是用以在多高速缓存环境中管理高速缓冲存储器的主计算机配置200的示意图。在图2的所示示例中,主机配置200包括主计算机202,其具有用户/设备文件访问请求管理器204、锁定和高速缓存委托管理器206(在下文中“委托管理器”)、高速缓冲存储器208和文件系统管理器210,文件系统管理器210被通信连接到磁盘储存器212和网络储存器214。示例性委托管理器206经由主计算机202的总线218被通信连接到节点216。如上所述,可将示例性总线218实现为PCI总线、PCI-E总线和/或任何其他类型的总线或任何类型的高速互连,诸如InfiniBand?或类似集群结构互连。同样如上所述,示例性节点216可以是协处理器板,其具有任何数目的核,诸如名为XeonPhi?的由Intel?制造的MIC。虽然图2的所示示例包括单个节点(即,节点216),但可基于示例性主计算机202的可用总线插槽的数目实现任何数目的节点。

在图2的所示示例中,节点216包括用户/设备文件访问请求管理器220、远程高速缓存客户端222以及节点高速缓冲存储器224。在操作中,通过示例性主机202和/或(一个或多个)示例性节点216的所有读和/或写请求由示例性委托管理器206经由示例性总线218来管理。特别地,示例性委托管理器206绕过、约束、转移、禁用和/或以其他方式阻断传统上可能以与示例性主机202相关联的基于NBFS的网络层为目标的高速缓存读/写请求。当由示例性委托管理器206检测到总线设备(例如,MIC节点)时,诸如被连接到示例性总线218的一个或多个节点,示例性委托管理器206确定新添加/附接的总线设备是否包括远程高速缓存客户端,诸如图2的示例性远程高速缓存客户端222。如果是这样,则示例性委托管理器206禁用和/或以其他方式阻止对节点的基于网络的文件访问以减少带宽等待时间和/或使其最小化,并经由示例性总线218来建立节点高速缓存通信服务。在一些示例中,针对一个或多个其他MIC功能保持仿真网络层114。另外,响应于由示例性主机202和/或一个或多个节点(例如,节点216)发起的一个或多个读和/或写请求,示例性委托管理器206控制两个设备充当共享高速缓存的高速缓存行为,如下面进一步详细描述的。换言之,示例性委托管理器206使单独节点处的两个单独高速缓存设备之间的高速缓存状态同步以促进通过主机平台总线(例如,总线218)的锁定通信。

图3是图2的示例性委托管理器206的示意图。在图3的所示示例中,委托管理器206包括主机文件请求接口302、主机总线接口304、主机高速缓存管理器306、远程高速缓存管理器308、锁定管理器310和块对齐管理器312。在操作中,示例性主机总线接口304检索和/或以其他方式在总线218上从节点(例如,示例性节点216)接收一个或多个读/写请求。例如,来自节点216的读请求被示例性总线主机接口304经由总线218检索,并调用示例性锁定管理器310以应用一个或多个锁定规则。如下面进一步详细描述的一个或多个锁定规则建立请求者(例如,发出读请求的节点216)的节点高速缓存224与主机高速缓存208之间的相互且同步的锁定状态。然后高速缓存数据传输可以以比(一个或多个)硬盘读/写操作基本上更快和/或比基于网络的数据传输基本上更快的方式发生。另外,由于(一个或多个)NBFS层被从通信参与中排除(例如,被约束、转移、禁用),所以与相对较慢的仿真基于网络的标准(例如,以太网)相比,相对更快的主机总线218(例如,快速PCI)改善了通信速度。

在一个或多个共享高速缓存传输之后,示例性主机文件请求接口302与示例性主机文件系统管理器210相交互以管理向/从相对较慢的存储设备(例如,硬盘、NAS等)的写和/或读。此类相对较慢的存储设备可被示例性主机文件请求接口302独立于共享高速缓存活动而调用以避免一个或多个瓶颈。示例性远程高速缓存管理器308和示例性主机高速缓存管理器306分别地促进示例性节点高速缓存224与主机高速缓存208之间的数据传输。另外,当前锁定状态值可被示例性远程高速缓存管理器308和示例性主机高速缓存管理器306查询,从而使得示例性锁定管理器310可调用正确的状态转换规则。

在一些示例中,读和/或写请求可包括跨越两个或更多块的字节范围。一般而言,高速缓冲存储器的每个块(例如,节点高速缓存224、主机高速缓存208、附加节点高速缓存设备等)可以包括例如512个字节,其中读和写操作基于逐个块发生。换言之,并不在块的各部分中执行高速缓存读/写操作,而是替代地要求对整个块(512字节)进行读/写。虽然本文公开的所示示例指代具有512个字节的块尺寸的系统,但本文公开的示例性方法、系统、装置和/或制品不限于此。在跨越超过一个块的读/写请求的情况下,此类读/写请求是未对齐的。例如,在字节15的读请求的情况下,则所有的字节1-512(即,第一块)实际上都被检索,并且在其后可提取与字节15相关联的特定信息/数据。另一方面,在读操作对字节500-524感兴趣的情况下,则读操作是未对齐的,因为字节1-512与第一块相关联,并且字节513-1024与第二块相关联。同样地,集中于跨越两个或更多块的一系列字节的读操作要求整体地读取每个关联块。

图4是图2的示例性远程高速缓存客户端222的示意图。在图4的所示示例中,远程高速缓存客户端222包括客户端请求接口402、客户端总线接口404和客户端高速缓存管理器406以向/从示例性节点高速缓存224写/读。在操作中,示例性客户端请求接口402与示例性用户/设备文件访问请求管理器220相交互以对通过节点216的一个或多个读/写请求进行响应。示例性客户端总线接口404被通信耦合到总线218以促进响应于来自主机202的请求/命令进行的从/向总线218的读/写操作,并且示例性客户端高速缓存管理器406被通信连接到示例性节点高速缓存224以促进向/从节点高速缓存224的同步写/读操作。

虽然在图2-4中图示出实现图2的主计算机配置200的示例性方式,但可用任何其他方式将图2-4中所示的元件、过程和/或设备中的一个或多个组合、划分、重新布置、省略、消除和/或实现。此外,可用硬件、软件、固件和/或硬件、软件和/或固件的任何组合来实现图2-4的示例性文件访问请求管理器204、示例性委托管理器206、示例性高速缓冲存储器208、示例性文件系统管理器210、示例性节点访问请求管理器220、示例性远程高速缓存客户端222、示例性节点高速缓冲存储器224、示例性主机文件请求接口302、示例性主机总线接口304、示例性主机高速缓存管理器306、示例性远程高速缓存管理器308、示例性锁定管理器310、示例性对齐管理器312、示例性客户端请求接口402、示例性客户端总线接口404和/或更一般地示例性客户端高速缓存管理器406。因此,例如可以用一个或多个模拟或数字电路、逻辑电路、(一个或多个)可编程处理器、(一个或多个)专用集成电路(ASIC)、(一个或多个)可编程逻辑器件(PLD)和/或(一个或多个)现场可编程逻辑器件(FPLD)来实现示例性文件访问请求管理器204、示例性委托管理器206、示例性高速缓冲存储器208、示例性文件系统管理器210、示例性节点访问请求管理器220、示例性远程高速缓存客户端222、示例性节点高速缓冲存储器224、示例性主机文件请求接口302、示例性主机总线接口304、示例性主机高速缓存管理器306、示例性远程高速缓存管理器308、示例性锁定管理器310、示例性对齐管理器312、示例性客户端请求接口402、示例性客户端总线接口404和/或更一般地示例性客户端高速缓存管理器406中的任何一个。当将本专利的装置或系统权利要求中的任何一个理解成涵盖完全软件和/或固件实施方式时,图2-4的示例性文件访问请求管理器204、示例性委托管理器206、示例性高速缓冲存储器208、示例性文件系统管理器210、示例性节点访问请求管理器220、示例性远程高速缓存客户端222、示例性节点高速缓冲存储器224、示例性主机文件请求接口302、示例性主机总线接口304、示例性主机高速缓存管理器306、示例性远程高速缓存管理器308、示例性锁定管理器310、示例性对齐管理器312、示例性客户端请求接口402、示例性客户端总线接口404和/或更一般地示例性客户端高速缓存管理器406中的至少一个因此被明确地定义成包括存储软件和/或固件的有形计算机可读存储设备或存储磁盘,诸如存储器、数字多功能磁盘(DVD)、紧凑式磁盘(CD)、蓝光磁盘等。更进一步,图2的示例性委托管理器206和远程高速缓存客户端222可包括除图3和4中所示的那些之外或作为其替代的一个或多个元件、过程和/或设备,和/或可包括任何或全部所示元件、过程和设备中的超过一个的元件、过程和/或设备。

在图5、6、7A、7B、8A、8B和8C中示出了表示用于实现图2的主计算机配置200的示例性机器可读指令的流程图。在本示例中,机器可读指令包括用于由处理器执行的程序,该处理器诸如在下面结合图9讨论的示例性处理器平台900中所示的处理器912。可用存储于诸如CD-ROM、软盘、硬盘驱动器、数字多功能磁盘(DVD)、蓝光磁盘或与处理器912相关联的存储器之类的有形计算机可读存储介质上的软件来体现程序,但是整个程序和/或其各部分可以替换地由除处理器912之外的设备执行和/或用固件或专用硬件来体现。此外,虽然参考图5、6、7A、7B、8A、8B和8C中所示的流程图来描述示例性程序,但可替换地使用实现示例性主机计算机配置200的许多其他方法。例如,可改变各方框的执行顺序和/或可将所述方框中的一些改变、消除或组合。

如上所述,可使用存储在有形计算机可读存储介质上的编码指令(例如,计算机和/或机器可读指令)来实现图5、6、7A、7B、8A、8B和8C的示例过程,所述有形计算机可读存储介质诸如硬盘驱动器、闪速存储器、只读存储器(ROM)、紧凑式磁盘(CD)、数字多功能磁盘(DVD)、高速缓存、随机存取存储器(RAM)和/或其中存储信息达任何持续时间(例如,达延长时间段、永久地、达短暂时刻、用于临时缓冲和/或用于信息的高速缓存)的任何其他存储设备或存储磁盘。如本文所使用的,术语有形计算机可读存储介质被明确地定义成包括任何类型的计算机可读存储设备和/或存储磁盘且不包括传播信号。如本文所使用的,“有形计算机可读存储介质”和“有形机器可读存储介质”被可互换地使用。另外或替换地,可使用存储在非临时计算机和/或机器可读介质上的编码指令(例如,计算机和/或机器可读指令)来实现图5、6、7A、7B、8A、8B和8C的示例性过程,所述非临时计算机和/或机器可读介质诸如硬盘驱动器、闪速存储器、只读存储器、紧凑式磁盘、数字多功能磁盘、高速缓存、随机存取存储器和/或其中存储信息达任何持续时间(例如,达延长时间段、永久地、达短暂时刻、用于临时缓冲和/或用于信息的高速缓存)的任何其他存储设备或存储磁盘。如本文所使用的,术语非临时计算机可读介质被明确地定义成包括任何类型的计算机可读设备或磁盘且不包括传播信号。如本文所使用的,当权利要求的前导中使用短语“至少”作为过渡术语时,其以与术语“包括”为开放式相同的方式是开放式的。

图5的程序500在方框502处开始,其中,示例性委托管理器206确定总线设备是否被添加和/或以其他方式被检测为被连接到示例性总线218。如果没有,则示例性委托管理器206继续针对一个或多个附加节点(例如,MIC节点)监视示例性总线218(方框502)。在由示例性委托管理器206在示例性总线218上检测到设备的情况下,示例性主机总线接口304确定检测到的设备是否包括远程高速缓存客户端(方框504),诸如图2和4的示例性远程高速缓存客户端222。在一些示例中,可响应于由示例性委托管理器206发送的包含查询代码的查询来识别远程高速缓存客户端。如果示例性远程高速缓存客户端222用授权响应代码对查询代码进行响应,则新添加总线设备可被视为被授权以符合图6、7A、7B、8A、8B和8C的方式采用一致性模型通信程序,如下面更详细地描述的。如果没有,则不认为新添加的设备将参与本文公开的示例性方法、系统、装置和/或制品,并且其被允许继续进行其关于示例性主机202可具有的任何(一个或多个)默认程序(方框506)。在一些示例中,在允许一个或多个基于网络的层被约束、阻断和/或以其他方式绕过之前验证和/或以其他方式确认由参与远程节点发送的授权代码。另一方面,如果示例性主机总线接口304识别到相应的远程高速缓存客户端(方框504),则示例性委托管理器206禁用、约束、转移、绕过、取代和/或以其他方式阻断关于新添加总线设备的经由仿真网络堆栈的一个或多个主机基于网络的文件访问尝试(方框508)。在一些示例中,一个或多个其他系统管理操作被许可,诸如查验(ping)操作。另外,一些示例采用可移植操作系统接口(POSIX)标准来协助一个或多个锁定支持命令。

如上所述,胜于依赖于和/或以其他方式采用主机所促进的标准/传统网络层,示例性主机总线接口304和客户端总线接口404建立通信和共享高速缓存锁定规则集以经由示例性总线218来实现同步设备高速缓存数据共享(方框510)。新检测到的设备(例如,MIC节点)高速缓存设备被示例性锁定管理器308设置成其初始状态(方框512),其中,主机高速缓存208的相应部分被同步成具有相同状态(例如,初始状态空(NULL))。控制返回到方框502以继续针对一个或多个其他节点的添加监视示例性总线218。

本文公开的示例性方法、装置、系统和制品建立一致性模型,其管理锁定状态将在示例性主机高速缓存208与每个连接节点高速缓存(诸如图2的示例性节点高速缓存224)之间同步。高速缓存设备之间的通过示例性总线218而不是NBFS(例如112、118)的数据传输可与四(4)个锁定状态(空、可用(AVAIL)(可用)、共享(SHARE)(读)和专属(EXCLUSIVE)(写))相关联。专属锁定对应于用于指定字节范围的写操作,其中使共享高速缓存条目无效。当专属锁定被释放时,关联高速缓存内容被冲刷(flush)到主机(主机节点),使得可以将此类内容移动至最终存储目的地。

可用节点标识符(ID)和过程ID描述符来识别锁定所有者。另外,可用主机节点上的文件ID来识别锁定,其还可包括字节范围描述符(brd)。如上所述,字节范围包含关于与读/写输入/输出(I/O)调用相关联的文件偏移和/或块计数的信息。在未对齐的情况下,可基于字节范围描述符将锁定分离成多个子锁定。

示例性四(4)个锁定状态之间的转换以符合下面所示的表1的方式发生。

在表1的所示示例中,四个锁定状态中的每一个可转换到后续状态。每个状态可与两(2)个不同模式相关联,(a)物理I/O(例如,向/从存储设备)在进行中时的待决模式和(b)I/O已完成时的许可模式。

图6的程序600在方框602处开始,其中,示例性主机文件请求接口302和示例性主机总线接口304确定访问请求是否已被示例性主机202或一个或多个节点(例如,节点216)接收到。特别地,示例性节点216的示例性访问请求管理器220监视I/O调用的一个或多个实例,并且当调用发生时,用信号通知示例性远程高速缓存客户端222以经由示例性总线218而不是与基于网络的文件系统(例如,112、118)相关联的一个或多个I/O路径来发送调用请求。类似地,示例性主机202的示例性访问请求管理器204监视I/O调用的一个或多个实例,并且当调用发生时,用信号通知示例性委托管理器206。在缺少一个或多个访问请求(例如,(一个或多个)I/O调用)的情况下,图6的程序600等待请求的发生(方框602)。然而,响应于访问请求(方框602),示例性主机高速缓存管理器306或示例性远程高速缓存管理器308识别哪个(些)高速缓存设备与请求相关联(方框604)。虽然图6的所示示例包括监视与访问请求相关联的情况的循环(方框602),但本文公开的示例性方法、装置、系统和/或制品不执行可阻止一个或多个附加和/或替换线程独立地执行的阻断操作。例如,在图6的示例性程序600的第一迭代的情况下,一个或多个附加线程可产生而在示例性程序600的其余部分执行的同时继续监视访问请求(方框602)。换言之,本文公开的程序的一个或多个示例可包括循环,但是此类循环可在缺少一个或多个阻断操作的情况下发生。

为了阻止对高速缓存的当前锁定部分的冲突访问(例如,来自节点高速缓存224的读请求和主机高速缓存208上的高速缓存的相应专属字节范围),示例性主机高速缓存管理器306和远程高速缓存管理器308检查相应(一个或多个)锁定状态(方框606)。与示例性主机配置200的所有高速缓存设备相关联的锁定状态可以符合表1以全局可访问表格格式加以存储。如果与接收到的访问请求相关联的高速缓存字节范围与当前字节范围描述符冲突(方框608),则该请求被排队且控制返回到方框602以等待访问请求的另一实例(例如,用于(一个或多个)读/写操作的调用)。

一般而言,在如由字节范围描述符识别的高速缓存设备的一部分冲突(例如,被锁定)的情况下,该相同高速缓存设备的其他部分可在没有冲突的情况下操作。在与访问请求相关联的字节范围描述符不冲突(例如,被允许)的情况下(方框608),示例性锁定管理器310确定该访问请求是否与读(共享)或另一类型的转换(例如,写(专属)调用)相关联(方框610)。读类型访问请求继续前进至方框612,而其他类型访问请求继续前进至方框614,下面更详细地讨论其中的每一个。

图7A图示出与读类型访问请求相关联的附加细节(方框612),包括从状态空到状态共享的转换。如上所述,读类型访问请求的示例性执行(方框612)可独立于图6的示例性程序600发生。此类独立执行(例如,经由一个或多个附加线程)促进(一个或多个)异步(非阻断)锁定管理操作。在图7A的所示示例中,示例性锁定管理器310将与由访问请求所识别的字节范围描述符相关联的锁定从状态空移动至状态共享待决(SHARE-PENDING)(方框702)。由示例性锁定管理器310设定的共享待决状态是经由缺少总线通信的(一个或多个)网络层应用于请求节点高速缓存(例如,节点216的节点高速缓存224)和主机高速缓存(例如,主机202的主机高速缓存208)的相应(一个或多个)共享部分两者的中间状态。可发生且以相同字节范围描述符为目标的(一个或多个)任何后续请求将在共享待决状态对于节点高速缓存224和主机高速缓存208两者而言皆为真的时刻期间被拒绝对与字节范围描述符相关联的高速缓存的访问。当诸如示例性节点高速缓存224之类的请求节点进行关于字节范围描述符的请求时,示例性锁定管理器310经由非网络总线(例如,PCI-E总线、总线104)而隔离主机高速缓存208的关联部分,并且两者都与相同高速缓存建立锁定状态(例如,共享待决)。因此,在示例性主机配置200包括附加节点(例如,第二节点、第三节点、第四节点等)的情况下,每个节点可与在物理上和在逻辑上分离的主机高速缓存208的各部分相关联。主机高速缓存208的此类分离部分可以在与各节点高速缓存字节范围同步的锁定状态下操作,使得每个分离节点可以运行其中相应过程数据未被混合的独立过程。读入数据被置于主机高速缓存208的关联共享高速缓冲存储器中(分派)(方框704),并且示例性锁定管理器310确定I/O操作是否完成(方框706)。如果没有,则示例性锁定管理器310调度IO完成工作实体/事件(方框707),其可等待并处理分派的读操作。如上所述,此类(一个或多个)示例性I/O完成工作事件(方框707)并不阻断和/或以其他方式禁止在本文公开的示例性图中可执行的一个或多个替换线程。在示例性I/O完成工作事件完成时(方框707)或者在主机I/O完成的情况下(方框706),示例性委托管理器206确认一个或多个网络被绕过和/或以其他方式被阻止有高速缓存通信能力,并且主机高速缓存208的内容被经由示例性总线218拷贝到请求节点的字节范围描述符部分(例如,节点216的节点高速缓存224)(方框708)。在一些示例中,示例性委托管理器206可周期性地、基于调度、非周期性地和/或响应于示例性主机202与(一个或多个)示例性节点216之间的任何(一个或多个)通信尝试而确认一个或多个网络被绕过和/或以其他方式阻止有高速缓存通信能力。

为了阻止请求节点(例如,节点216)过早地(例如,在所有高速缓存内容被拷贝到示例性节点高速缓存224之前)尝试在与字节范围描述符相关联的高速缓存上执行(一个或多个)操作,示例性锁定管理器310调用给节点216的总线通知消息以告知其高速缓存内容可用(方框710)。换言之,总线通知消息警告请求节点读操作完成且内容在节点高速缓存224中可用,从而减少和/或以其他方式消除将以其他方式在相对更加带宽受限的(一个或多个)基于网络的文件系统和/或(一个或多个)仿真器上发生的附加通信带宽。示例性锁定管理器310用共享许可(SHARE-GRANTED)状态来替换中间共享待决状态(方框712)并调用共享后管理(方框714)。示例性共享后管理可响应于一个或多个附加和/或替换线程产生实例而发生,以保持本文公开的示例性方法、装置、系统和/或制品的异步操作。

如上文所讨论的,处于共享状态的锁定可转换到一个或多个后续锁定状态。图7B图示出与共享后管理相关联的附加细节(方框714)。在图7B的所示示例中,可以以与事件处理程序类似的方式操作的示例性锁定管理器310调用示例性远程高速缓存管理器308和/或示例性主机高速缓存管理器306以便当(a)不存在其他请求读节点时(方框750),(b)请求节点释放该锁定时(方框752)以及(c)生存时间(TTL)阈值或计时器已到期时(方框754)确定是否使该锁定转换到可用状态。在发生上述三个条件的情况下,示例性远程高速缓存管理器308分配从共享状态到可用状态的锁定(方框756)。换言之,从共享状态转换到可用状态阻止读类型锁定状态的完全释放,这减少了在完全锁定释放(例如,空状态)之后重新获取读锁定状态将需要的锁定管理资源消耗。如下面更详细地描述的,可发生(一个或多个)附加条件以进一步转换到空状态。在原始请求者(例如,负责访问请求的节点(方框602))并未将锁定释放(方框752)的情况下,高速缓存管理器306、308确定是否存在与写相关联的其他请求者(方框753)。如果没有,则控制继续前进至方框754以检查TTL阈值/计时器的到期。换言之,远程高速缓存管理器308永久地阻止对锁定的控制。另一方面,如果其他请求者与写相关联(方框753),则控制前进至图8A的示例性程序。

在发生用于读的其他请求者的情况下(方框750),示例性远程高速缓存管理器308保持用于与字节范围描述符相关联的高速缓存部分上的锁定的共享状态(方框760)。换言之,即使原始请求者尚未将锁定释放(方框752),用以读的一个或多个尝试也可被许可。主机高速缓存208的共享部分的内容被经由示例性总线218拷贝到请求节点(方框762),并且在锁定表格中识别新的锁定所有者(方框764),诸如上述示例性表1。在一些示例中,在经由示例性总线218拷贝到请求节点之前,委托管理器206确认一个或多个基于网络的系统被从操作绕过和/或以其他方式正在处理通信。同样地,拷贝可以以比将以其他方式使用NBFS(例如,112、118)和/或(一个或多个)仿真层(例如,114、120)发生的相对更快的方式发生。如上所述,为了阻止请求节点在完成读操作之前访问和/或以其他方式尝试使用高速缓存内容,控制前进至方框710,其中,示例性锁定管理器310调用给节点216的总线通知消息以告知其高速缓存内容可用。

返回方框756,在锁定状态转换到可用之后,发起第二TTL阈值或计时器(方框766)。示例性第二TTL计时器允许在其中可能发生附加读请求的有限时间量内保持可用状态。一般而言,可用锁定状态是被调用以改善与锁定获取和释放操作相关联的计算效率。从空状态到共享状态的用于给定字节范围描述符的锁定的获取比从在先共享状态保持共享状态消耗相对更大量的系统资源。在一些情况下,节点可以在相对短的时间段内迭代任何数目的读请求。如果发生此类请求,则阻止锁定在每次迭代期间恢复到空状态节省宝贵的处理和/或带宽资源。

事件处理程序310确定相同节点是否进行了另一读请求(方框768),并且如果没有,则进行检查以确定第二TTL计时器是否已到期(方框770)。如上所述,第二TTL计时器阻止可用状态在不确定时间段内保持专属性。如果TTL计时器到期(方框770),则事件处理程序310发起完成此事件处理的从可用到空的转换(方框772)。然而,如果TTL计时器并未到期(方框770),则事件处理程序310确定是否发生另一请求(方框768)。另一方面,写请求的接收(方框774)促使控制前进至图8A,如下面更详细地描述的,并且读请求的接收(方框774)促使控制保持共享状态(方框760)。

暂时返回图6,如果示例性锁定管理器310确定发生访问请求与非共享型转换相关联(例如,写(专属)调用)(方框610),则调用非共享型访问管理(方框614)。图8A图示出与其他转换类型请求相关联的附加细节(方框614),包括从状态空到状态专属的转换。在图8A的所示示例中,示例性锁定管理器310将与访问请求所识别的字节范围描述符相关联的锁定从状态空移动至状态专属待决(EXCLUSIVE-PENDING)(方框802)。由示例性锁定管理器310设定的专属待决状态被应用于请求节点高速缓存(例如,节点216的节点高速缓存224)和主机高速缓存(例如,主机202的主机高速缓存208)的相应共享部分两者。可发生且以与该请求相同的字节范围描述符为目标的任何后续(一个或多个)请求将在锁定的持续时间期间(在专属待决状态期间)被拒绝对与该字节范围描述符相关联的(一个或多个)高速缓存部分的访问。

示例性主机节点分派储存器读,考虑到字节范围描述符是否是未对齐的(方框804)。换言之,如果写操作跨越多个块,则每个块必须在(一个或多个)块内的字节部分上的一个或多个写操作之前被整体地读取。示例性锁定管理器310随后调度等待IO完成的工作事件(方框806—参见短划线)。如上所述,可作为一个或多个线程而产生一个或多个工作事件以避免阻断的实例,从而保持异步操作。在IO完成时,工作事件处理程序将内容拷贝到请求节点(方框808)。在移动完成时通知请求节点(例如,节点216)(方框810),并且锁定状态变成专属许可(方框812),并调用写后管理事件(方框814)。

图8B图示出与写后管理相关联的附加细节(方框814),其可以用异步方式操作和/或以其他方式执行。在图8B的所示示例中,示例性锁定管理器310确定原始请求者是否释放了锁定(方框449)。如果是这样,则控制前进至方框856,其中输入可用待决(AVAIL-PENDING)状态,如结合图8C更详细地讨论的。另一方面,如果原始请求者并未释放锁定(方框849),则示例性锁定管理器310设定TTL计时器并确定其是否已到期(方框850)。在方框814的程序的第一迭代时,示例性TTL计时器在开始时将尚未到期(方框850),并且示例性锁定管理器310确定是否发生共享(读)请求(方框852)。如果没有,则锁定管理器310确定是否发生写请求(方框854)。如果没有发生写请求(方框854),则控制返回到方框850以确定TTL计时器是否已到期。如上所述,TTL计时器阻止关于任何特定状态的垄断,并且可以调整和/或以其他方式调谐一个或多个TTL计时器的持续时间。当TTL计时器到期时(方框850),示例性锁定管理器310将锁定设置成可用待决状态(方框856),如下面结合图8C所述。

在图8C的所示示例中,锁定在感兴趣的字节范围处移动至用于主机设备的可用待决状态(方框876)。高速缓存条目被拷贝到主机节点(方框878),并且示例性主机冲刷高速缓存条目(方框880)。另外,在重置示例性TTL计时器(方框884)之前从所有者节点使高速缓存条目无效(方框882)。更新锁定表以反映可用状态(方框886),并且控制返回到图7B的方框768。

返回到图8B的所示示例,在发生另一写请求的情况下(方框854),则事件处理程序310针对在写请求中涉及到的两个高速缓存设备将锁定设置成专属待决状态(方框858)。将与写请求相关联的高速缓存条目拷贝到主机节点(方框860),并且然后从所有者节点(例如,写内容的源)使其无效(去除)(方框862)。示例性主机冲刷高速缓存条目(方框864),并且然后将条目拷贝到请求节点(方框866)。如上所述,多个块可能在字节范围描述符跨越超过512个字节的情况下需要被写入。诸如上述示例性表1之类的锁定表被更新以反映变化(方框868),并且TTL计时器在控制返回到方框850之前被重置(方框870)。

在发生读请求的情况下(方框852),然后示例性锁定管理器310针对在读请求中涉及到的两个高速缓存设备将锁定设置成共享待决状态(方框872)。高速缓存条目被拷贝到主机节点(方框874),并经由示例性总线218从主机向请求节点调用拷贝操作(方框876)。主机冲刷高速缓存条目(方框878)并更新锁定表以反映该变化(方框880)。控制前进至方框714以管理共享后操作。

图9是能够执行图5、6、7A、7B、8A、8B和8C的指令以实现图2-4的主机配置的示例性处理器平台900的框图。处理器平台900可以是例如服务器、个人计算机或任何其他类型到计算设备。

所示示例的处理器平台900包括处理器912。所示示例的处理器912是硬件。例如,处理器912可以由来自任何期望系列或制造商的一个或多个集成电路、逻辑电路、微处理器或控制器实现。

所示示例的处理器912包括本地存储器913(例如,高速缓存)。所示示例的处理器912经由总线918与包括易失性存储器914和非易失性存储器916的主存储器通信。易失性存储器914可由同步动态随机存取存储器(SDRAM)、动态随机存取存储器(DRAM)、RAMBUS动态随机存取存储器(RDRAM)和/或任何其他类型的随机存取存储器件实现。非易失性存储器916可由闪速存储器和/或任何其他期望类型的存储器件实现。对主存储器914、916的访问由存储器控制器控制。

所示示例的处理器平台900还包括接口电路920。接口电路920可由任何类型接口标准实现,诸如以太网接口、通用串行总线(USB)和/或快速PCI接口。

在所示示例中,一个或多个输入设备922被连接到接口电路920。(一个或多个)输入设备922许可用户向处理器912输入数据和命令。所述(一个或多个)输入设备可以由例如键盘、按钮、鼠标、触摸屏、触控板、轨迹球、isopoint(键盘指针选择器)和/或语音识别系统实现。

一个或多个输出设备924也被连接到所示示例的接口电路920。输出设备924可以由例如显示设备(例如,发光二极管(LED)、有机发光二极管(OLED)、液晶显示器、阴极射线管显示器(CRT)、触摸屏、触觉输出设备和/或发光二极管(LED)、打印机和/或扬声器)实现。所示示例的接口电路920因此通常包括图形驱动卡、图形驱动芯片或图形驱动处理器。

所示示例的接口电路920还包括通信设备,诸如发射机、接收机、收发机、调制解调器和/或网络接口卡以促进经由网络926(例如,以太网连接、数字订户线(DSL)、电话线、同轴电缆、蜂窝式电话系统等)与外部机器(例如,任何种类的计算设备)交换数据。

所示示例的处理器平台900还包括用于存储软件和/或数据的一个或多个大容量存储设备928。此类大容量存储设备928的示例包括软盘驱动器、硬盘驱动器磁盘、紧凑式磁盘驱动器、蓝光磁盘驱动器、RAID系统以及数字多功能磁盘(DVD)驱动器。

图5、6、7A、7B、8A、8B和8C的已编码指令932可被存储在大容量存储设备928中、易失性存储器914中、非易失性存储器916中和/或诸如CD或DVD之类的可移动有形计算机可读存储介质上。

根据前述内容,将认识到的是上文公开方法、装置和制品减少了节点设备联网层负担和关联的带宽不足。在节点高速缓存字节范围与主机高速缓存的关联部分之间建立的共享高速缓存状态促进以减少的开销负担进行的总线传输。

示例性公开装置包括用以识别被通信连接到总线的远程高速缓冲存储器的远程高速缓存管理器、用以约束远程高速缓冲存储器以经由总线与主机高速缓冲存储器共享数据的委托管理器以及用以使主机高速缓冲存储器和远程高速缓冲存储器与公共锁定状态同步的锁定管理器。其他示例性公开装置包括用以阻断网络层与远程高速缓冲存储器通信的委托管理器。一些示例性装置包括用以在约束基于网络的层之前检测由远程高速缓存客户端发送的授权代码的远程高速缓存管理器,而其他示例性装置包括用以绕过主机网络层通信协议的委托管理器。一些示例性装置包括用以发起远程高速缓冲存储器进入空状态的远程高速缓存管理器,其中,总线包括外围部件互连(PCI)总线或快速PCI总线中的至少一个。在其他示例性装置中,块对齐管理器将响应于第一访问请求而针对与第一字节范围相关联的远程高速缓存建立中间状态,并针对等于与第一字节范围相关联的尺寸的主机高速缓存的一部分建立中间状态。在一些示例中,委托管理器将在中间状态在远程高速缓存和主机高速缓存上为真时阻断由第二访问请求对第一字节范围的访问。在其他示例中,总线接口将响应于高速缓存数据传输完成而从与主机高速缓冲存储器相关联的主机到节点设备调用总线通知消息。一些示例包括用以促进用于第一请求节点的高速缓存读请求的锁定管理器,该第一请求节点用以获取与第一字节范围相关联的读锁定,其中,锁定管理器将响应于通过第一请求节点的释放而在生存时间持续时间内阻止读锁定的释放。其他示例包括用以使读锁定转换至可用状态以减少锁定管理资源消耗的锁定管理器。在一些示例中,委托管理器将经由总线在约束远程高速缓冲存储器的同时保持异步执行。

本文公开的示例性方法包括识别被通信连接到总线的远程高速缓冲存储器、约束远程高速缓冲存储器以经由总线与主机高速缓冲存储器共享数据并使主机高速缓冲存储器和远程高速缓冲存储器与公共锁定状态同步。一些示例性方法包括阻断网络层与远程高速缓冲存储器通信。其他示例性方法包括在约束基于网络的层之前检测由远程高速缓存客户端发送的授权代码。其他示例性方法包括绕过主机网络层通信协议,并发起远程高速缓冲存储器进入空状态。其他方法包括包含外围部件互连(PCI)总线或快速PCI总线中的至少一个的总线,响应于该第一访问请求而针对与第一字节范围相关联的远程高速缓存建立中间状态,并针对等于与第一字节范围相关联的尺寸的主机高速缓存的一部分建立中间状态。一些方法包括当中间状态在远程高速缓存和主机高速缓存上为真时阻断由第二访问请求对第一字节范围的访问,和/或响应于高速缓存数据传输完成而调用从与主机高速缓冲存储器相关联的主机到节点设备的总线通知消息。一些方法促进用于第一请求节点的高速缓存读请求,第一请求节点用以获取与第一字节范围相关联的读锁定,响应于通过第一请求节点的释放而在生存时间持续时间内阻止读锁定的释放,并使读锁定转换到可用状态以减少锁定管理资源消耗。一些方法经由总线而在约束远程高速缓冲存储器的同时保持异步执行,并且一些方法确认经由总线而在拷贝之前绕过基于网络的通信系统。

本文公开的示例性计算机可读存储介质包括促使机器识别被通信连接到总线的远程高速缓冲存储器、约束远程高速缓冲存储器以经由总线与主机高速缓冲存储器共享数据并使主机高速缓冲存储器和远程高速缓冲存储器与公共锁定状态同步的指令。其他示例性指令促使机器阻断网络层与远程高速缓冲存储器通信。一些示例性指令促使机器在约束基于网络的层之前检测由远程高速缓存客户端发送的授权代码。其他示例性指令促使机器在约束远程高速缓冲存储器时绕过主机网络层通信协议。在其他示例中,指令促使机器发起远程高速缓冲存储器进入空状态,响应于第一访问请求而针对与第一字节范围相关联的远程高速缓存建立中间状态,并针对等于与第一字节范围相关联的尺寸的主机高速缓存的一部分建立中间状态。一些示例促使机器在中间状态在远程高速缓存和主机高速缓存上为真时阻断由第二访问请求对第一字节范围的访问,响应于高速缓存数据传输完成而调用从与主机高速缓冲存储器相关联的主机到节点设备的总线通知消息,并促进用于第一请求节点的高速缓存读请求,该第一请求节点用以获取与第一字节范围相关联的读锁定。其他示例性指令促使机器响应于通过第一请求节点的释放而在生存时间持续时间内阻止读锁定的释放和/或转换到可用状态以减少锁定管理资源消耗。

本文公开的示例性系统包括用于识别被通信连接到总线的远程高速缓冲存储器的装置、用于约束远程高速缓冲存储器以经由总线与主机高速缓冲存储器共享数据的装置以及用于使主机高速缓冲存储器和远程高速缓冲存储器与公共锁定状态同步的装置。一些示例性系统包括用于阻断网络层与远程高速缓冲存储器通信的装置、用于在约束基于网络的层之前检测由远程高速缓存客户端发送的授权代码的装置以及用于在约束远程高速缓冲存储器时绕过主机网络层通信协议的装置。其他示例性系统包括用于发起远程高速缓冲存储器进入空状态的装置、用于响应于第一访问请求而针对与第一字节范围相关联的远程高速缓存建立中间状态的装置以及用于针对等于与第一字节范围相关联的尺寸的主机高速缓存的一部分建立中间状态的装置。一些示例包括用于当中间状态在远程高速缓存和主机高速缓存上为真时阻断由第二访问请求对第一字节范围的访问的装置,而其他示例包括用于响应于高速缓存数据传输完成而调用从与主机高速缓冲存储器相关联的主机到节点设备的总线通知消息的装置。其他示例包括用于促进用于第一请求节点的高速缓存读请求,该第一请求节点用以获取与第一字节范围相关联的读锁定的装置和/或用于响应于通过第一请求节点的释放而在生存时间持续时间内阻止读锁定的释放的装置。而其他系统包括用于通过使读锁定转换至可用状态来减少锁定管理资源消耗的装置。

虽然在本文中已公开了某些示例性方法、装置和制品,但本专利的覆盖范围不限于此。相反地,本专利涵盖清楚地落在本专利的权利要求范围内的所有方法、装置和制品。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号