一种基于固态硬盘的多核控制器资源访问方法及其装置与流程

文档序号:11774236阅读:212来源:国知局
一种基于固态硬盘的多核控制器资源访问方法及其装置与流程

本发明涉及访问管理技术领域,特别是涉及一种基于固态硬盘的多核控制器资源访问方法及其装置。



背景技术:

随着信息技术的高速发展,固态硬盘因其读写速度快、能耗较低,而被广泛采用。当前对于固态硬盘共享资源的访问方式主要是通过加锁方式进行控制,避免多核心共同访问同一个区域的资源造成资源的访问异常,具体过程为,在一个控制器核心发送请求消息后,若请求消息对应的资源处的lock位为有效,则表明该资源目前未被使用,可以访问,若lock位为失效,表明当前有其他请求正在使用该资源,故不能访问。

在实际应用中,资源的访问有读取、修改与删除,按照如上的资源保护机制,当同时访问的核心有多个时,则每次只能有一个核心进行访问,其余核心只能被挂起进行等待,导致被挂起的核心对应的时延增大。

另外,对于某些资源的读取操作,可能不需要保证其数据的时效性,即只需获取当前数据,该类访问其实并不需要等待上一个访问完成后再进行访问,但是按照目前的资源保护机制,这类访问也需要等到上一个访问完成后,控制lock位解锁有效后,再进行访问操作,访问效率低。

因此,如何提供一种访问效率高的基于固态硬盘的多核控制器资源访问方法及其装置是本领域技术人员目前需要解决的问题。



技术实现要素:

本发明的目的是提供一种基于固态硬盘的多核控制器资源访问方法及其装置,对于预设的低优先级类型的请求消息,可以在上一个同类型的请求消息访问过程中直接与其访问同一资源区域,也可以多个该类型的请求消息同时访问同一资源区域,数据访问的效率高。

为解决上述技术问题,本发明提供了一种基于固态硬盘的多核控制器资源访问方法,包括:

接收控制器核心发送的请求消息后,若消息类型为预设的低优先级类型,则将其分配至低优先级队列,若为其余消息类型,将其分配至高优先级队列;

判断所述高优先级队列是否接收到所述请求消息,如果是,判断所述请求消息对应的资源的高优先级lock位和低优先级lock位是否均有效,若均有效,则控制所述高优先级lock位失效锁定,并返回请求资源至相应的控制器核心;

若未接收到,判断所述低优先级队列是否接收到所述请求消息,如果是判断所述请求消息对应的资源的高优先级lock位是否有效,若有效,则控制相应的低优先级lock位失效锁定,并返回请求资源至相应的控制器核心;

所述高优先级lock位失效表明该资源当前被所述高优先级队列内的消息占用,所述低优先级lock位失效表明该资源当前被所述低优先级队列内的消息占用。

优选地,所述高优先级队列或所述低优先级队列接收到所述请求消息后,判断相应的lock位是否有效之前,还包括:

检测所述请求消息内携带有加锁信息还是解锁信息,若为解锁信息,进行资源释放处理;若为加锁信息,则继续判断相应的lock位是否有效。

优选地,当所述高优先级队列接收到的请求消息对应的资源的高优先级lock位和/或低优先级lock位失效时,还包括:

判断所述高优先级队列接收到的请求消息内是否包含等待位,若包含,则控制将所述请求消息加入高优先级等待队列;否则,返回资源请求失败响应至相应的控制器核心;

当所述低优先级队列接收到的请求消息对应的资源的高优先级lock位失效时,还包括:

判断所述低优先级队列接收到的请求消息内是否包含等待位,若包含,则控制将所述请求消息加入低优先级等待队列;否则,返回资源请求失败响应至相应的控制器核心。

优选地,当所述低优先级队列接收到的请求消息对应的资源的高优先级lock位有效时,还包括:

控制该资源对应的计数器加1。

优选地,所述资源释放处理的过程具体为:

若所述高优先级队列接收到的请求消息内包含解锁信息,控制所述高优先级队列接收到的请求消息对应的资源的高优先级lock位恢复有效;

判断所述高优先级等待队列内是否包含请求消息,若包含,则控制所述高优先级等待队列内包含的请求消息对应的高优先级lock位失效锁定,并返回请求资源至相应的控制器核心;

若不包含,判断所述低优先级等待队列内是否包含请求消息,若包含,判断所述低优先级等待队列内包含的请求消息对应的资源的高优先级lock位是否有效,若有效,则控制该低优先级lock位失效锁定,相应的计数器加1,并返回请求资源至相应的控制器核心;若失效。则将该请求消息重新放回所述低优先级等待队列内;

若所述低优先级队列接收到的请求消息内包含解锁信息,控制相应的计数器减1;

判断相应的计数器的计数值是否为0,若为0,则控制所述低优先级等待队列内包含的请求消息对应的高优先级lock位失效锁定。

为解决上述技术问题,本发明还提供了一种基于固态硬盘的多核控制器资源访问装置,包括:

接收模块,用于接收控制器核心发送的请求消息后,若消息类型为预设的低优先级类型,则将其分配至低优先级队列,若为其余消息类型,将其分配至高优先级队列;

高优先级判断模块,用于判断所述高优先级队列是否接收到所述请求消息,如果是,判断所述请求消息对应的资源的高优先级lock位和低优先级lock位是否均有效,若均有效,则控制所述高优先级lock位失效锁定,并返回请求资源至相应的控制器核心;所述高优先级lock位失效表明该资源当前被所述高优先级队列内的消息占用,所述低优先级lock位失效表明该资源当前被所述低优先级队列内的消息占用;若未接收到,触发低优先级判断模块;

所述低优先级判断模块,用于判断所述低优先级队列是否接收到所述请求消息,如果是,判断所述请求消息对应的资源的高优先级lock位是否有效,若有效,则控制相应的低优先级lock位失效锁定,并返回请求资源至相应的控制器核心。

优选地,所述高优先级判断模块还包括:

第一加解锁控制单元,用于在所述高优先级队列接收到所述请求消息后,检测所述请求消息内携带有加锁信息还是解锁信息,若为解锁信息,进行资源释放处理;若为加锁信息,则继续判断相应的lock位是否有效;

所述低优先级判断模块还包括:

第二加解锁控制单元,用于在所述低优先级队列接收到所述请求消息后,检测所述请求消息内携带有加锁信息还是解锁信息,若为解锁信息,进行资源释放处理;若为加锁信息,则继续判断相应的lock位是否有效。

优选地,还包括:

等待判断模块,用于当所述高优先级队列接收到的请求消息对应的资源的高优先级lock位和/或低优先级lock位失效时,受到所述高优先级判断模块触发后,判断所述高优先级队列接收到的请求消息内是否包含等待位,若包含,则控制将所述请求消息加入高优先级等待队列;否则,返回资源请求失败响应至相应的控制器核心;当所述低优先级队列接收到的请求消息对应的资源的高优先级lock位失效时,受到所述低优先级判断模块触发后,判断所述低优先级队列接收到的请求消息内是否包含等待位,若包含,则控制将所述请求消息加入低优先级等待队列;否则,返回资源请求失败响应至相应的控制器核心。

优选地,所述低优先级判断模块还包括:

计数单元,用于在当所述低优先级队列接收到的请求消息对应的资源的高优先级lock位有效时,受到控制该资源对应的计数器加1。

优选地,所述第一加解锁控制单元与所述第二加解锁控制单元,在接收到解锁信息后,触发资源释放模块;所述装置还包括:

所述资源释放模块,用于若所述高优先级队列接收到的请求消息内包含解锁信息,控制所述高优先级队列接收到的请求消息对应的资源的高优先级lock位恢复有效;判断所述高优先级等待队列内是否包含请求消息,若包含,则控制所述高优先级等待队列内包含的请求消息对应的高优先级lock位失效锁定,并返回请求资源至相应的控制器核心;若不包含,判断所述低优先级等待队列内是否包含请求消息,若包含,判断所述低优先级等待队列内包含的请求消息对应的资源的高优先级lock位是否有效,若有效,则控制该低优先级lock位失效锁定,相应的计数器加1,并返回请求资源至相应的控制器核心;若失效。则将该请求消息重新放回所述低优先级等待队列内;若所述低优先级队列接收到的请求消息内包含解锁信息,控制相应的计数器减1;判断相应的计数器的计数值是否为0,若为0,则控制所述低优先级等待队列内包含的请求消息对应的高优先级lock位失效锁定。

本发明提供了一种基于固态硬盘的多核控制器资源访问方法及其装置,将接收到的请求信息按照其消息类型进行分类,并将预设的低优先级类型的类型的请求消息分配至低优先级队列,其余分配至高优先级队列。当低优先级队列接收到请求消息后,只需要确定当前相应的资源处的高优先级lock位有效,即当前相应的资源并未被高优先级的请求消息占用,即可控制接收到的请求消息直接进行访问。可见,在本发明中,对于类型为预设的低优先级类型的请求消息,可以不必等待上一个低优先级的消息访问完成即可直接访问,当同时接收到多个低优先级的请求消息后,这些请求消息也可以同时访问,而不需要在一个完成后再进行下一个,从而大大提高了访问的效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种基于固态硬盘的多核控制器资源访问方法的过程的流程图;

图2为本发明提供的另一种基于固态硬盘的多核控制器资源访问方法的过程的流程图;

图3为本发明提供的一种资源释放过程的流程图;

图4为本发明提供的一种基于固态硬盘的多核控制器资源访问装置的结构示意图。

具体实施方式

本发明的核心是提供一种基于固态硬盘的多核控制器资源访问方法及其装置,对于预设的低优先级类型的请求消息,可以在上一个同类型的请求消息访问过程中直接与其访问同一资源区域,也可以多个该类型的请求消息同时访问同一资源区域,数据访问的效率高。

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明提供了一种基于固态硬盘的多核控制器资源访问方法,参见图1所示,图1为本发明提供的一种基于固态硬盘的多核控制器资源访问方法的过程的流程图;该方法包括:

步骤s1:接收控制器核心发送的请求消息后,若消息类型为预设的低优先级类型,则将其分配至低优先级队列;若为其余消息类型,将其分配至高优先级队列;

其中,这里的低优先级类型可以为:不需要保证其读取的数据的时效性,只需获取当前数据资源的读取操作。当然,本发明对此不作具体限定。

步骤s2:判断高优先级队列是否接收到请求消息,如果是,判断请求消息对应的资源的高优先级lock位和低优先级lock位是否均有效,若均有效,则控制高优先级lock位失效锁定,并返回请求资源至相应的控制器核心;若未接收到,进入步骤s3;

其中,高优先级队列接收到请求消息后,可以先判断高优先级lock位是否有效,若有效,则控制高优先级lock位失效锁定,之后再判断低优先级lock位,若有效,再返回请求资源;也可以同时分两路判断高优先级lock位和高优先级lock位是否有效,若高优先级lock位有效,则控制高优先级lock位失效锁定,若两者均有效,则返回请求资源;具体采用哪种顺序本发明不作具体限定。

步骤s3:判断低优先级队列是否接收到请求消息,如果是,判断请求消息对应的资源的高优先级lock位是否有效,若有效,则控制相应的低优先级lock位失效锁定,并返回请求资源至相应的控制器核心;

其中,高优先级lock位失效表明该资源当前被高优先级队列内的消息占用,低优先级lock位失效表明该资源当前被低优先级队列内的消息占用。

可以理解的是,只要没有高优先级的消息占用资源,则低优先级的消息可以无视是否有资源占用直接访问,即不必等待上一个低优先级的消息访问完成即可直接访问,当同时接收到多个低优先级的请求消息后,这些请求消息也可以同时访问,并返回请求资源至发送请求消息的多个控制器核心。

作为优选地,步骤s2和步骤s3中,高优先级队列或低优先级队列接收到请求消息后,判断相应的lock位是否有效之前,还包括:

步骤s20:检测请求消息内携带有加锁信息还是解锁信息,若为解锁信息,进行资源释放处理;若为加锁信息,则继续判断相应的lock位是否有效。

可以理解的是,控制器核心在进行数据访问时,开始会发送一个携带有加锁信息的请求消息,控制自身访问的资源的lock位锁定失效,当访问完成后,控制器核心还会发送一个携带有解锁信息的请求消息,控制相应的lock位解锁有效。因此,访问前需要先判断该请求消息携带的是哪种信息,才能方便后续采用相应的操作。

作为优选地,当高优先级队列接收到的请求消息对应的资源的高优先级lock位和/或低优先级lock位失效时,还包括:

步骤s21:判断高优先级队列接收到的请求消息内是否包含等待位,若包含,则控制将请求消息加入高优先级等待队列;否则,返回资源请求失败响应至相应的控制器核心;

当低优先级队列接收到的请求消息对应的资源的高优先级lock位失效时,还包括:

步骤s31:判断低优先级队列接收到的请求消息内是否包含等待位,若包含,则控制将请求消息加入低优先级等待队列;否则,返回资源请求失败响应至相应的控制器核心。

可以理解的是,控制器核心发送的请求消息内若包含等待位,则表明该请求消息可以在资源被占用的情况下进行等待,若不包含等待位,表明该请求消息必须立即回复结果,不能进行等待,故次数会直接返回资源请求失败响应。

作为优选地,当低优先级队列接收到的请求消息对应的资源的高优先级lock位有效时,还包括:

步骤s32:控制该资源对应的计数器加1。

参见图2所示,图2为本发明提供的另一种基于固态硬盘的多核控制器资源访问方法的过程的流程图。

可以理解的是,由于低优先级消息的特性,使其允许多个低优先级的请求消息同时使用同一资源,故此时为了记录某一资源当前正在访问的消息的数量,需要设置与资源区域对应的计数器。

进一步可知,参见图3所示,图3为本发明提供的一种资源释放过程的流程图;步骤s20中的资源释放处理的过程具体为:

步骤s201:若高优先级队列接收到的请求消息内包含解锁信息,控制高优先级队列接收到的请求消息对应的资源的高优先级lock位恢复有效,并进入步骤s202;

步骤s202:判断高优先级等待队列内是否包含请求消息,若包含,进入步骤s203;若不包含,进入步骤s204;

步骤s203:控制高优先级等待队列内包含的请求消息对应的高优先级lock位失效锁定,并返回请求资源至相应的控制器核心;

步骤s204:判断低优先级等待队列内是否包含请求消息,若包含,判断低优先级等待队列内包含的请求消息对应的资源的高优先级lock位是否有效,若有效,则控制该低优先级lock位失效锁定,相应的计数器加1,并返回请求资源至相应的控制器核心;若失效。则将该请求消息重新放回低优先级等待队列内;

步骤s205:若低优先级队列接收到的请求消息内包含解锁信息,控制相应的计数器减1;

步骤s206:判断相应的计数器的计数值是否为0,若为0,则控制低优先级等待队列内包含的请求消息对应的高优先级lock位失效锁定。

需要注意的是,由于高优先级等待队列中为高优先级的请求消息,优先级别高于低优先级等待队列中的请求消息,因此步骤s202中需要先判断高优先级等待队列内是否包含请求消息,再判断低优先级等待队列内是否包含请求消息。

另外,步骤s201与步骤s205之间为并列关系,两者之间是否有先后顺序本发明不作限定,两者可以同时进行。

本发明提供了一种基于固态硬盘的多核控制器资源访问方法,将接收到的请求信息按照其消息类型进行分类,并将预设的低优先级类型的类型的请求消息分配至低优先级队列,其余分配至高优先级队列。当低优先级队列接收到请求消息后,只需要确定当前相应的资源处的高优先级lock位有效,即当前相应的资源并未被高优先级的请求消息占用,即可控制接收到的请求消息直接进行访问。可见,在本发明中,对于类型为预设的低优先级类型的请求消息,可以不必等待上一个低优先级的消息访问完成即可直接访问,当同时接收到多个低优先级的请求消息后,这些请求消息也可以同时访问,而不需要在一个完成后再进行下一个,从而大大提高了访问的效率。

本发明还提供了一种基于固态硬盘的多核控制器资源访问装置,参见图4所示,图4为本发明提供的一种基于固态硬盘的多核控制器资源访问装置的结构示意图。该装置包括:

接收模块1,用于接收控制器核心发送的请求消息后,若消息类型为预设的低优先级类型,则将其分配至低优先级队列,若为其余消息类型,将其分配至高优先级队列;

高优先级判断模块2,用于判断高优先级队列是否接收到请求消息,如果是,判断请求消息对应的资源的高优先级lock位和低优先级lock位是否均有效,若均有效,则控制高优先级lock位失效锁定,并返回请求资源至相应的控制器核心;高优先级lock位失效表明该资源当前被高优先级队列内的消息占用,低优先级lock位失效表明该资源当前被低优先级队列内的消息占用;若未接收到,触发低优先级判断模块3;

低优先级判断模块3,用于判断低优先级队列是否接收到请求消息,如果是,判断请求消息对应的资源的高优先级lock位是否有效,若有效,则控制相应的低优先级lock位失效锁定,并返回请求资源至相应的控制器核心。

作为优选地,高优先级判断模块2还包括:

第一加解锁控制单元,用于在高优先级队列接收到请求消息后,检测请求消息内携带有加锁信息还是解锁信息,若为解锁信息,进行资源释放处理;若为加锁信息,则继续判断相应的lock位是否有效;

低优先级判断模块3还包括:

第二加解锁控制单元,用于在低优先级队列接收到请求消息后,检测请求消息内携带有加锁信息还是解锁信息,若为解锁信息,进行资源释放处理;若为加锁信息,则继续判断相应的lock位是否有效。

作为优选地,该装置还包括:

等待判断模块4,用于当高优先级队列接收到的请求消息对应的资源的高优先级lock位和/或低优先级lock位失效时,受到高优先级判断模块2触发后,判断高优先级队列接收到的请求消息内是否包含等待位,若包含,则控制将请求消息加入高优先级等待队列;否则,返回资源请求失败响应至相应的控制器核心;当低优先级队列接收到的请求消息对应的资源的高优先级lock位失效时,受到低优先级判断模块3触发后,判断低优先级队列接收到的请求消息内是否包含等待位,若包含,则控制将请求消息加入低优先级等待队列;否则,返回资源请求失败响应至相应的控制器核心。

作为优选地,低优先级判断模块3还包括:

计数单元,用于在当低优先级队列接收到的请求消息对应的资源的高优先级lock位有效时,受到控制该资源对应的计数器加1。

作为优选地,第一加解锁控制单元与第二加解锁控制单元,在接收到解锁信息后,触发资源释放模块5;该装置还包括:

资源释放模块5,用于若高优先级队列接收到的请求消息内包含解锁信息,控制高优先级队列接收到的请求消息对应的资源的高优先级lock位恢复有效;判断高优先级等待队列内是否包含请求消息,若包含,则控制高优先级等待队列内包含的请求消息对应的高优先级lock位失效锁定,并返回请求资源至相应的控制器核心;若不包含,判断低优先级等待队列内是否包含请求消息,若包含,判断低优先级等待队列内包含的请求消息对应的资源的高优先级lock位是否有效,若有效,则控制该低优先级lock位失效锁定,相应的计数器加1,并返回请求资源至相应的控制器核心;若失效。则将该请求消息重新放回低优先级等待队列内;若低优先级队列接收到的请求消息内包含解锁信息,控制相应的计数器减1;判断相应的计数器的计数值是否为0,若为0,则控制低优先级等待队列内包含的请求消息对应的高优先级lock位失效锁定。

本发明提供了一种基于固态硬盘的多核控制器资源访问装置,将接收到的请求信息按照其消息类型进行分类,并将预设的低优先级类型的类型的请求消息分配至低优先级队列,其余分配至高优先级队列。当低优先级队列接收到请求消息后,只需要确定当前相应的资源处的高优先级lock位有效,即当前相应的资源并未被高优先级的请求消息占用,即可控制接收到的请求消息直接进行访问。可见,在本发明中,对于类型为预设的低优先级类型的请求消息,可以不必等待上一个低优先级的消息访问完成即可直接访问,当同时接收到多个低优先级的请求消息后,这些请求消息也可以同时访问,而不需要在一个完成后再进行下一个,从而大大提高了访问的效率。

以上的两种具体实施方式仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进,这些改进也应视为本发明的保护范围。

还需要说明的是,在本说明书中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1