用于在高速缓存行中实现位阵列的方法和系统技术方案

技术编号:12985206 阅读:117 留言:0更新日期:2016-03-04 11:36
本发明专利技术涉及一种用于在包括存储装置(208)和控制器(206)的存储系统(128)的高速缓存行(211)中实现位阵列(318)的方法,所述方法包括:在所述高速缓存行(211)中配置所述位阵列(318),所述位阵列包括具有多个位的阵列,其中所述配置进一步包括定义所述位阵列中每个位的值;所述控制器(206)接收对所述位阵列执行操作的请求(210),其中所述请求指示所述高速缓存行(211)在所述存储装置(208)中的位置以及指示指定所述请求的信息;所述控制器(206)针对所述操作使用所述信息标识对所述位阵列(318)执行的一个或多个动作,其中所述一个或多个动作被编码在所述控制器(206)中;以及响应于接收所述请求,通过执行一个或多个所编码的动作来执行所述请求。

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及计算系统,更具体地说,涉及用于在高速缓存行中实现位阵列的方法。
技术介绍
对于不同规模的公司而言,许多多线程计算机系统变为多项重要技术之一。它们提高计算硬件平台的计算效率和灵活性。多线程计算机系统上的多线程操作可以包括按位原子存储操作(AMO),其针对位阵列的个体位执行逻辑操作。此类AMO包括存储式操作storeAND、storeOR、storeXOR 和加载式操作 fetchAND、fetchOR、fetchXOR。
技术实现思路
本专利技术的实施例的一个目标是提供一种改进的方法、计算机系统和计算机程序产品。所述目标由独立权利要求的主题解决。在从属权利要求中描述有利的实施例。此处使用的原子存储操作(AMO)指对共享数据的读-改-写操作。就一个线程的读-改-写操作在不受另一线程干扰的情况下执行这个意义而言,AMO是原子的。换言之,对于存取(例如,并发存取)共享数据的线程或处理器而言,每次读取、写入或AMO存取被原子地执行而不受另一存取的干扰。在一方面,本专利技术涉及一种用于在包括存储装置和控制器的存储系统的高速缓存行中实现位阵列的方法。所述方法包括在所述高速缓存行中配置所述位阵列,所述位阵列包括具有多个位的阵列,其中所述配置进一步包括定义所述位阵列中每个位的值;所述控制器接收对位阵列执行操作的请求,其中所述请求指示所述高速缓存行在所述存储器中的位置以及指示指定所述请求的信息;所述控制器(206)针对所述操作使用所述信息标识对所述位阵列执行的一个或多个动作,其中所述一个或多个动作被编码在所述控制器中;以及响应于接收所述请求,通过执行一个或多个所编码的动作来执行所述请求。所述位阵列是存储个体位的数据结构,即,每个阵列元素与单个位对应。所述位阵列的每个元素存储两个值O或I中的一个。所述位阵列的每个元素通过唯一的索引标识。通常,索引值O到(E-1)被用于具有E个元素的位阵列。所述位阵列的实现允许存取所述高速缓存行的至少一部分,以便对所述位阵列的个体位以及位组执行按位逻辑操作。例如,所述位阵列的每个位可表示包括存储系统的计算机系统的一个资源实例。对所述位阵列执行的操作通过将对应的一个或多个位的值设定为1,例如可允许诸如线程之类的用户自动变为一个或多个所述资源实例的“所有者”。例如,所述位阵列的每个位可表示多个线程所共享的一组锁中的一个锁。针对所述位阵列的操作例如允许线程以高性能、低编程工作量来自动获取多个锁。例如,所述位阵列的每个位的I或O值可表示优先队列中特定元素的存在或缺失。此类优先队列最多具有E个唯一元素,其中每个元素具有编号为O到E-1的唯一优先级,从而对应于所述位阵列的每个索引。这些特征可以是有利的,因为与传统方法相比,尤其是对于并发线程,它们可允许针对所述位阵列的更高操作率。这是因为针对所述位阵列的操作可以是简单操作,这种简单操作比针对其它数据结构的传统操作更快。这些特征可允许多个线程使用所述位阵列作为并发数据结构。例如,所请求的操作可以是ΑΜ0。所接收的请求可以是所述控制器从多个线程接收的有关对所述位阵列执行操作的多个并发请求之一。所接收的并发请求可以按顺序被执行。所述控制器可适于执行和管理此类多个并发线程。所述控制器可包括接受存储器访问请求的接收器和返回应答的发送器,它们均可包括先进先出缓冲器(FIFO)以处理多个并发线程的存储器访问。这些特征可以提供单个接口,以便多个用户或线程例如通过多线程应用来利用所述位阵列,在所述多线程应用中,多个线程同时发出存取所述位阵列的请求(例如所述请求)。另一优点可以是所述存储系统可以实现新的原子存储操作以使用优于传统位阵列的位阵列。例如,AMO可以是处理器存储或加载指令的变型。所请求的操作可以只需所述高速缓存行的地址,并且无需所述位阵列的元素地址。根据一个实施例,所述请求包括取回和设定第一 O-位请求,所述请求的执行包括执行以下一个或多个动作:从索引O开始,按顺序读取所述位阵列的每个位;在发现具有O值的第一位的情况下,返回第一被发现位的索引,并且将所述第一被发现位的值设定为I ;否则返回预定义的失败值。术语O-位(Ο-bit)指具有O值的位。术语1-位(Ι-bit)指具有I值的位。对于具有E个元素的位阵列,取回和设定第一O-位请求返回O到E-1内的索引值。如果所述位阵列中没有O-位,则所述预定义的失败值可能不与有效索引对应。例如,所述失败值可以是E (所述位阵列的位数)。所述高速缓存行也可被其它按位AMO存取。例如,诸如StoreANDO之类的按位AMO寻址并修改128字节高速缓存行内的8字节字。例如,线程发出取回和设定第一 O-位请求以获取与具有O值的第一位的索引对应的资源。在使用该资源之后,线程针对所述高速缓存行中的适当字发出StoreANDO操作以将该位设定为O值,从而使资源再次可用。这样,位阵列可用于内存页、索引节点(inode)、盘扇区等的分配。根据一个实施例,所述请求包括取回和设定最后O-位请求,其中所述位阵列包括E个元素,所述请求的执行包括执行以下一个或多个动作:从索引E-1开始,按顺序读取所述位阵列的每个位;在发现所述位阵列中具有O值的最后位的情况下,返回所述最后位的索引,并且将所述最后位的值设定为I ;否则返回预定义的失败值。根据一个实施例,所述请求包括对1-位进行计数的请求,其中所述请求的执行包括执行以下一个或多个动作:读取所述位阵列的每个位;对具有I值的位进行计数;以及返回所述计数的结果。例如,此类请求也被称为族群计数(populat1n count)请求。根据一个实施例,所述请求包括取回和设定隔离的O位请求,所述请求的执行包括执行以下一个或多个动作:读取所述位阵列并确定具有O值的位的O个或更多连续序列;在发现O个序列的情况下,返回预定义的失败值;否则基于一个或多个连续序列的位数排列(rank)所述一个或多个连续序列;选择所述一个或多个连续序列中具有最低位数的连续序列的一个位;返回选定位的索引;将所述选定位的值设定为I。这可以是有利的,因为可保留可供其它并发操作使用的最长可能的O系列。当所述位阵列表示某些资源(诸如内存页或磁盘块)的连续实例时,这可以是有利的,其中保留一系列O将保留连续的可用资源,以便于将来的资源获取。此类将来的获取可针对所述位阵列使用取回和设定N个连续的O-位请求。根据一个实施例,所述请求包括取回第一 1-位请求,其中所述请求的执行包括执行以下一个或多个动作:从索引O开始,按顺序读取所述位阵列的每个位;在发现具有I值的第一位的情况下,返回第一被发现位的索引;否则返回预定义的失败值。例如,取回第一1-位请求可被用于基于位阵列标识优先队列中的最高优先级元素。根据一个实施例,所述请求包括取回和清除第一 1-位请求,所述请求的执行包括执行以下一个或多个动作:从索引O开始,按顺序读取所述位阵列的每个位;在发现具有I值的第一位的情况下,返回第一被发现位的索引,并且将所述第一被发现位的值设定为O ;否则返回预定义的失败值。例如,取回和清除第一 1-位请求可被用于基于所述位阵列标识和移除优先队列中的最高优先级元素。根据一个实施例,所述请求包括取回和清除最后1-位请求,其中所述位阵列包括E个元素,所述请求的执行包括本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/CN105378686.html" title="用于在高速缓存行中实现位阵列的方法和系统原文来自X技术">用于在高速缓存行中实现位阵列的方法和系统</a>

【技术保护点】
一种用于在包括存储装置(208)和控制器(206)的存储系统(128)的高速缓存行(211)中实现位阵列(318)的方法,所述方法包括:‑在所述高速缓存行(211)中配置所述位阵列(318),所述位阵列(318)包括具有多个位的阵列,其中所述配置进一步包括定义所述位阵列(318)中每个位的值;‑所述控制器(206)接收对位阵列(318)执行操作的请求(210),其中所述请求(210)指示所述高速缓存行(211)在所述存储装置(208)中的位置以及指示指定所述请求(210)的信息;‑所述控制器(206)针对所述操作使用所述信息标识对所述位阵列(318)执行的一个或多个动作,其中所述一个或多个动作被编码在所述控制器(206)中;以及‑响应于接收所述请求(210),通过执行一个或多个所编码的动作来执行所述请求(210)。

【技术特征摘要】
【国外来华专利技术】...

【专利技术属性】
技术研发人员:B·施泰因马赫尔布罗
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1