CPU调度的方法和装置与流程

文档序号:16265055发布日期:2018-12-14 21:51阅读:178来源:国知局
本发明实施例涉及计算机领域,并且更具体地,涉及一种CPU调度的方法和装置。
背景技术
:通过内存总线连接到中央处理器(CentralProcessingUnit,CPU)的存储设备可能包括不同类型的存储介质。而对于不同类型的存储介质,CPU的访问时延不同。当CPU通过统一的路径和指令访问不同类型的存储设备时,并不能区分要访问的存储介质的类型,所以,当CPU选择等待当前运行的进程时,访问时延长的存储介质会长时间占用内核资源,造成CPU资源的浪费;当CPU选择挂起当前运行的进程时,则对访问时延短的存储介质而言,系统的开销过大。因此,当CPU通过统一的路径和指令访问包括不同类型的存储介质的存储设备时,由于不能区分要访问的存储介质的时延类型,从而造成CPU资源的浪费和系统开销较大的问题。技术实现要素:本发明实施例提供一种CPU调度的方法和装置,能够减小CPU资源的浪费,降低系统的开销。第一方面,提供一种CPU调度的方法,该方法应用于一体化存储设备中,其中一体化存储设备包含有多种不同类型的存储介质,该方法包括:获取当前访问操作的访问地址;根据访问地址确定访问操作访问的存储介质;确定存储介质的时延类型;在确定存储介质的时延类型为第一时延类型的情况下,中止运行访问操作的进程;在确定存储介质的时延类型为第二时延类型的情况下,继续执行访问操作的进程,其中,第一时延类型的存储介质的访问时延大于第二时延类型的存储介质的访问时延。结合第一方面,在第一方面的第一种可能的实现方式中,所述确定所述存储介质的时延类型包括:获取存储介质的访问时延;若存储介质的访问时延大于预设值,确定存储介质的时延类型为第一时延类型;若存储介质的访问时延不大于预设值,确定存储介质的时延类型为第二时延类型。结合第一方面,在第一方面的第二种可能的实现方式中,所述确定所述存储介质的时延类型包括:获取预设的存储介质与存储介质的时延类型之间的对应关系;根据对应关系,确定存储介质的时延类型。结合第一方面或上述可能的实现方式中的任一种,在第一方面的第三种可能的实现方式中,在确定存储介质的时延类型之前,该方法还包括:确定访问操作的待访问数据是否存储在缓存中;确定访存地址对应的存储介质的时延类型包括:在确定待访问数据未存储在缓存中的情况下,确定存储介质的时延类型。结合第一方面或上述可能的实现方式中的任一种,在第一方面的第四种可能的实现方式中,第一时延类型的存储介质包括硬盘驱动器HDD、固态硬盘SSD和非易失性闪存NANDFlash中的至少一种存储介质,第二时延类型的存储介质包括动态随机存储器DRAM和非易失固态存储器NVM中的至少一种存储介质。第二方面,提供一种CPU调度的装置,该装置应用于一体化存储设备中,其中一体化存储设备包含有多种不同类型的存储介质,该装置包括:获取模块,用于获取当前访问操作的访问地址;第一确定模块,用于根据获取模块获取的访问地址确定访问操作访问的存储介质;第二确定模块,用于确定存储介质的时延类型;执行模块,用于在第二确定模块确定的存储介质的时延类型为第一时延类型时,中止运行访问操作的进程;在第二确定模块确定的存储介质的时延类型为第二时延类型时,继续执行访问操作的进程,其中,第一时延类型的存储介质的访问时延大于第二时延类型的存储介质的访问时延。结合第二方面,在第二方面的第一种可能的实现中,第二确定模块具体用于:获取存储介质的访问时延;若存储介质的访问时延大于预设值,确定存储介质的时延类型为第一时延类型;若存储介质的访问时延不大于预设值,确定存储介质的时延类型为第二时延类型。结合第二方面,在第二方面的第二种可能的实现方式中,第二确定模块包括:获取单元,用于获取预设的存储介质与存储介质的时延类型之间的对应关系;确定单元,用于根据获取单元获取的对应关系,确定存储介质的时延类型。结合第二方面或上述可能的实现方式中的任一种,在第二方面的第三种可能的实现方式中,该装置还包括:第三确定模块,用于确定访问操作的待访问数据是否存储在缓存中,其中,第二确定模块,具体用于在第三确定模块确定待访问数据未存储在缓存中的情况下,确定访存储介质的时延类型。结合第二方面或上述可能的实现方式中的任一种,在第二方面的第四种可能的实现方式中,第一时延类型的存储介质包括硬盘驱动器HDD、固态硬盘SSD和非易失性闪存NANDFlash中的至少一种存储介质,第二时延类型的存储介质包括动态随机存储器DRAM和非易失固态存储器NVM中的至少一种存储介质。第三方面,提供一种存储设备,该存储设备包括控制器以及多种不同类型的存储介质。其中,存储介质,用于存储数据;控制器用于:获取当前访问操作的访问地址;根据访问地址确定访问操作访问的存储介质;确定存储介质的时延类型;在确定存储介质的时延类型为第一时延类型的情况下,中止运行访问操作的进程;在确定存储介质的时延类型为第二时延类型的情况下,继续执行访问操作的进程,其中,第一时延类型的存储介质的访问时延大于第二时延类型的存储介质的访问时延。结合第三方面,在第三方面的第一种可能的实现中,控制器具体用于:获取存储介质的访问时延;若存储介质的访问时延大于预设值,确定存储介质的时延类型为第一时延类型;若存储介质的访问时延不大于预设值,确定存储介质的时延类型为第二时延类型。结合第三方面,在第三方面的第二种可能的实现方式中,控制器具体用于:获取预设的存储介质与存储介质的时延类型之间的对应关系;根据对应关系,确定存储介质的时延类型。结合第三方面或上述可能的实现方式中的任一种,在第三方面的第三种可能的实现方式中,控制器还用于:在确定存储介质的时延类型之前,确定访问操作的待访问数据是否存储在缓存中;在确定待访问数据未存储在缓存中的情况下,确定存储介质的时延类型。结合第三方面或上述可能的实现方式中的任一种,在第三方面的第四种可能的实现方式中,第一时延类型的存储介质包括硬盘驱动器HDD、固态硬盘SSD和非易失性闪存NANDFlash中的至少一种存储介质,第二时延类型的存储介质包括动态随机存储器DRAM和非易失固态存储器NVM中的至少一种存储介质。因此,根据本发明实施例的CPU调度的方法,通过获取当前访问操作的访问地址,根据访问地址确定当前访问操作访问的存储介质,进而确定的存储介质的时延类型。当确定存储介质的时延类型为时延较大的类型时,中止执行当前访问操作的进程,实现进程切换。当确定存储介质的为访问较小的类型时,继续等待执行当前访问进程。根据这种方式,可以在一定程度上减少访问操作的等待时间,提高进程处理效率,从而能够减小CPU资源的浪费,降低系统的开销。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了根据本发明实施例的应用场景示意图。图2示出了根据本发明一个实施例的CPU调度的方法的示意性流程图。图3示出了根据本发明另一实施例的CPU调度的方法的示意性流程图。图4示出了根据本发明另一实施例的CPU调度的方法的示意性流程图。图5示出了根据本发明另一实施例的CPU调度的方法的示意性流程图。图6示出了根据本发明另一实施例的CPU调度的方法的示意性交互过程图。图7示出了根据本发明一个实施例的CPU调度的装置的示意性框图。图8示出了根据本发明另一实施例的CPU调度的装置的示意性框图。图9示出了根据本发明一个实施例的存储设备的示意性框图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。图1示出了根据本发明实施例的应用场景示意图。如图1所示,系统包括中央处理器(CentralProcessingUnit,CPU)(100)和存储设备(106)可以通过内存总线连接。CPU中集成了CPU内核(101)、内存管理单元(MemoryManagementUnit,MMU)(102)、转换查询缓存(TranslationLookasideBuffer,TLB)(103)、高速缓冲存储器(cache)(104)和消息式内存控制器(MessageMemoryController,MMC)(105)。需要说明的是,图中虽然只示出了1个CPU内核和1个存储设备的情况,但本发明实施例的方法并不局限于此,还可以是多个CPU内核和多个存储设备的情况。图中示出的存储设备包括3种不同类型的存储介质,但本发明实施例的方法并不局限于此,还可以是1种、2种或者多于3种类型的存储介质的情况。应理解,图1所示的存储设备可以是一体化存储设备(UnifiedAccessStorage,UAS),UAS包含控制器和多种类型的存储介质,UAS包含的多种存储介质可以通过相同的内存访问接口被访问。如图1所示,CPU内核要将待访问数据写入存储设备或者从存储设备中读取待访问数据的过程可以包括以下步骤:步骤①,CPU内核发起当前访问操作的访问请求,该访问请求中包括当前访问操作的待访问数据对应的虚拟地址。步骤②,MMU根据虚拟地址查询TLB。步骤③,TLB向MMU反馈与虚拟地址对应的物理地址。步骤④,MMU向CPU内核反馈待访问数据对应的物理地址。步骤⑤,CPU内核根据物理地址访问cache。步骤⑥,当cache中未存储待访问数据时,即:在cache不命中的情况下,CPU内核将物理地址发送给MMC。步骤⑦,MMC根据物理地址在存储设备中对应的存储介质中写入或读取待访问数据。步骤⑧,存储设备向MMC反馈待访问数据已写入或已读取。步骤⑨,MMC将读取的待访问数据替换到cache中。步骤⑩,CPU内核从cache中读取待访问的数据或表示CPU内核接收MMC反馈的待访问数据已写入的消息。由于当CPU通过统一的路径和指令访问存储介质时,并不能区分要访问的存储介质的类型,所以不能根据存储介质的访问时延特性降低系统的开销。需要说明的是,在步骤⑤中,CPU内核根据该物理地址访问高速缓冲存储器cache,当cache中存储待访问数据时,即:在cache命中的情况下,如果CPU内核要写入物理地址的数据已存储在cache中,CPU内核可以将存储在cache中的数据进行更新,或者CPU内核要读取的与物理地址对应的数据已存储在cache中,CPU内核根据物理地址可以直接从cache中读取该数据。也就是说,在cache命中的情况下,CPU内核并不需要去访问存储介质,访存请求可以在cache内快速完成,所以不会出现因存储介质的类型不同而造成的访问时延不同的问题。还需要说明的是,在步骤⑤中,CPU内核根据该物理地址访问高速缓冲存储器cache包括:CPU内核向cache发送物理地址;cache接收CPU内核发送的物理地址,并根据该物理地址,确定cache中是否存储了待访问数据。为了方便理解本发明实施例,首先在此介绍本发明实施例描述中会引入的几个要素。进程是指正在运行的程序(指令和数据)的执行过程。存储介质的访问时延是指CPU对存储介质进行一次读操作所需的时间。图2示出了根据本发明一个实施例的CPU调度的方法200的示意性流程图。图2的方法200可以应用于一体化存储设备中,其中一体化存储设备包含有多种不同类型的存储介质,该方法200包括:步骤210,获取当前访问操作的访问地址。具体地,在本发明实施例中,访问地址可以包括虚拟地址、物理地址或其他访问地址,其中,虚拟地址是虚拟地址空间中的非物理的访问地址,物理地址是物理地址空间中的实际的访问地址,即:指CPU要写入数据的实际的访问地址,或者CPU要读取数据的实际的访问地址。当前访问操作可以包括读操作、写操作或其他操作。步骤220,根据步骤210中获取的访问地址确定当前访问操作访问的存储介质。在本发明实施例中,在步骤210中获取的是物理地址时,可以根据物理地址确定与该物理地址对应的存储介质,在步骤210中获取的是虚拟地址时,可以根据虚拟地址确定与该虚拟地址对应的存储介质。具体地,可以通过查询本地或存储设备中存储的存储介质的访问地址与存储介质的对应关系,确定访问地址对应的存储介质。换句话说,当访问地址在某个存储介质对应的一段地址空间范围之内时,就可以确定该访问地址对应的存储介质为这个存储介质,例如:在步骤210中获取的访问地址为物理地址,且该物理地址在0-4GB的物理地址空间范围之内,而存储介质DRAM的物理地址空间对应于0-4GB的物理地址空间,则可以确定该物理地址对应的存储介质为DRAM。类似地,当步骤210中获取的访问地址为虚拟地址时,也可以根据这种方法确定该虚拟地址对应的存储介质,为了简便,在此不再赘述。步骤230,根据步骤220中确定存储介质确定存储介质的时延类型。在本发明实施例中,可以根据该存储介质与存储介质的时延类型的对应关系确定该存储介质的时延类型。或者,也可以根据访存地址与存储介质的时延类型的对应关系确定该访存地址对应的存储介质的时延类型。步骤240,在确定存储介质的时延类型为第一时延类型的情况下,中止运行当前访问操作的进程。在本发明实施例中,中止运行当前访问操作的进程是指可以挂起当前访问操作的进程,使当前访问操作的进程进入休眠状态,从而可以释放当前访问操作的进程占用的CUP资源,便于待运行的其他进程来占用CPU资源,从而实现进程切换。步骤250,在确定存储介质的时延类型为第二时延类型的情况下,继续执行访问操作的进程,其中,第一时延类型的存储介质的访问时延大于第二时延类型的存储介质的访问时延。因此,本发明实施例提供的CPU调度的方法,通过获取当前访问操作的访问地址,根据访问地址确定当前访问操作访问的存储介质,进而确定的存储介质的时延类型,当确定存储介质的时延类型为时延较大的类型时,中止执行当前访问操作的进程,实现进程切换。当确定存储介质的时延较小时,继续等待执行当前访问进程。根据这种方式,可以在一定程度上减少访问操作的等待时间,提高进程处理效率,从而能够减小CPU资源的浪费,降低系统的开销。可选地,作为一个实施例,在步骤230中,可以获取存储介质的访问时延;若存储介质的访问时延大于预设值,确定存储介质的时延类型为第一时延类型;若存储介质的访问时延不大于预设值,确定存储介质的时延类型为第二时延类型。具体地,可以通过比较存储介质的访问时延与预设值的大小关系,根据比较结果确定该存储介质的时延类型为第一时延类型,还是为第二时延类型,这里,第一时延类型的存储介质的访问时延大于第二时延类型的存储介质的访问时延。需要说明的是,这个比较过程可以只进行一次,并将比较结果,即:存储介质与存储介质的时延类型的对应关系存储到本地或存储设备中,当CPU内核再次发起访存请求时,可以直接到本地或者存储设备中查找存储的对应关系,确定存储介质的时延类型,但本发明实施例并不仅限于此,例如:也可以在CPU内核每次发起访存请求时,执行这个比较过程。还应理解,在本发明实施例中,预设值可以根据CPU内核对存储介质进行一次读操作所需的时间来确定,并可以进行预先的配置。可替换地,作为另一实施例,在步骤230中,还可以根据存储介质的访问时延与CPU进行进程切换的时间资源开销之间的相对比例关系,确定存储介质的时延类型为第一时延类型,还是为第二时延类型。例如:当存储介质的访问时延超过CPU进行进程切换的时间资源开销的4倍,则确定存储介质的时延类型为第一时延类型,否则,确定存储介质的时延类型为第二时延类型。需要说明的是,存储介质的访问时延与CPU进行进程切换的时间资源开销之间的相对比例关系并不仅限于4倍,还可以增大或减小,这里仅是以举例的方式对本发明实施例的技术方法进行说明,并不对本发明实施例构成任何限定。还应理解,在本发明实施例中,根据存储介质的访问时延与CPU进行进程切换的时间资源开销之间的相对比例关系,确定存储介质的时延类型为第一时延类型还是为第二时延类型的过程也可以只进行一次,将确定的结果,即:存储介质与存储介质的时延类型的对应关系存储到本地或存储设备中,当CPU内核再次发起访存请求时,可以直接到本地或者存储设备中查找存储的对应关系,确定存储介质的时延类型,但本发明实施例并不仅限于此。根据本发明实施例,当存储介质的访问时延大于预设值时,可以确定该存储介质的时延类型为第一时延类型;当存储介质的访问时延不大于预设值时,可以确定该存储介质的时延类型为第二时延类型。应理解,在本发明实施例中,第一时延类型的存储介质可以包括硬盘驱动器(HardDiskDrive,HDD)、固态硬盘(SolidStateDisk,SSD)和非易失性闪存(NANDFlash)中的至少一种存储介质,第二时延类型的存储介质可以包括动态随机存储器(DynamicRandomAccessMemory,DRAM)和非易失固态存储器(Non-violateMemory,NVM)中的至少一种存储介质。需要说明的是,非易失固体存储器NVM可以包括相变内存器(PhaseChangeMemory,PCM)、磁性存储器(MagneticRandomAccessMemory,MRAM)和忆阻存储器(ResistiveRandomAccessMemory,RRAM)中的至少一种存储器,或者,NVM也可以包括其他新型的存储器,本发明实施例并不仅限于此。可选地,作为另一实施例,在步骤230中,可以获取预设的存储介质与该存储介质的时延类型之间的对应关系,再根据获取的对应关系,确定该存储介质的时延类型为第一时延类型或第二时延类型,其中,第一时延类型的存储介质的访问时延大于第二时延类型的存储介质的访问时延。应理解,预设的的存储介质与该存储介质的时延类型之间的对应关系可以是预先存储在本地或存储设备中的存储介质与该存储介质的时延类型之间的对应关系。可选地,作为另一实施例,如图3所示,在步骤230之前,所述方法200还包括:步骤260,确定当前访问操作的待访问数据是否存储在缓存中,其中,步骤230,在步骤260中确定该待访问数据未存储在缓存中的情况下,确定该存储介质的时延类型。具体地,在本发明实施例中,缓存可以包括CPU内的各级高速缓存cache、消息式内存控制器MMC内的缓存或软件管理器内的缓存中的任一级缓存,并且当存储设备为一体换存储设备UAS时,还包括UAS的控制器内的缓存。例如:在步骤260中,可以根据访存地址依次确定待访问数据是否存储在CPU内的各级cache、MMC内的缓存和UAS的控制器内的缓存中的任一级缓存中,当步骤260中确定待访问数据未存储在这些缓存中的任一级缓存中时,在步骤230中确定存储介质的时延类型。需要说明的是,在本发明实施例中,在确定待访问数据已存储在缓存中时,可以根据现有技术来实现,即:直接从该缓存中读取待访问数据或者将待访问数据更新到该缓存。需要说明的是,在本发明实施例中,在确定待访问数据已存储在缓存中时,可以根据现有技术来实现,即:直接从该缓存中读取待访问数据或者将待访问数据更新到该缓存。下面,结合具体的实施例,对本发明实施例的方法进行详细的描述。图4示出了根据本发明另一实施例的CPU调度的方法300的示意性流程图。图4所示的方法300以访问地址为物理地址为例对本发明实施例的方案进行详细的说明,如图4所示,步骤310,获取当前访问操作的访问地址,该访问地址为物理地址。步骤320,根据步骤310中获取的物理地址,确定该物理地址对应的存储介质。步骤330,根据步骤320中确定的存储介质,确定该存储介质的时延类型。具体地,可以通过比较存储介质的访问时延与预设值的大小关系,根据比较结果确定该存储介质的时延类型,例如:当存储介质的访问时延大于预设值时,可以确定该存储介质的时延类型为第一时延类型;当存储介质的访问时延不大于预设值时,可以确定该存储介质的时延类型为第二时延类型。应理解,在本发明实施例中,预设值可以根据内核对存储介质进行一次读操作所需的时间来确定,例如:第一预设值可以设置成100μs-1ms,例如:第一预设值可以设置成500μs,CPU对HDD进行一次读操作的时间为4ms,大于第一预设值500μs,所以HDD的时延类型为第一时延类型,即:HDD为第一时延类型的存储介质。再如:第二预设值可以设置成600ns-1μs,例如:第二预设值可以设置成800ns,CPU对DRAM进行一次读操作的时间为600ns,小于第二预设值800ns,所以DRAM的时延类型为第二时延类型,即:DRAM为第二时延类型的存储介质。应理解,第一预设值与第二预设值可以设置成相同的数值,例如:可以设置成1μs-100μs,例如:可以设置成60μs,CPU对NVM进行一次读操作的时间为300ns,小于预设值60μs,所以NVM的时延类型为第二时延类型,即:NVM为第二时延类型的存储介质;CPU对SSD进行一次读操作的时间为70μs,大于预设值60μs,所以SSD的时延类型为第一时延类型,即:SSD为第一时延类型的存储介质。应理解,也可以获取本地或存储设备中存储的存储介质与该存储介质的时延类型之间的对应关系,确定该存储介质的时延类型。例如:可以通过查询本地或存储设备中存储的存储介质与该存储介质的时延类型之间的对应关系的对应关系表或文档,获取存储介质与该存储介质的时延类型之间的对应关系,进而确定该存储介质的时延类型。或者,还可以通过查询本地或存储设备中存储的存储介质的物理地址与该存储介质的时延类型之间的对应关系的对应关系表或文档,获取存储介质与该存储介质的时延类型之间的对应关系,进而确定该存储介质的时延类型。应理解,在本发明实施例中,对应关系表可以包括:存储介质和存储介质的时延类型。例如:对应关系表可以如表1所示,表1存储介质DRAMHDDSSDNVM时延类型0110其中,“0”可以表示第二时延类型,“1”可以表示第一时延类型。例如:当物理地址对应的存储介质为HDD时,该HDD的时延类型为第一时延类型。当物理地址对应的存储介质为NVM时,该NVM的时延类型为第二时延类型。应理解,表1所示的情况只是本发明实施例的一个例子,并不对本发明实施例构成限定,也可以有其他的表示方式,例如:可以用“Y”表示第二时延类型存储介质,“X”表示第一时延类型存储介质,或者,直接表示为“第二时延类型”和“第一时延类型”等等。需要说明的是,在本发明实施例中,可以在获取存储介质与该存储介质的时延类型之间的对应关系前,获取存储介质与存储介质的物理地址空间范围的对应关系,例如:可以是如表2所示的对应关系表。表2起始物理地址04GB20GB532GB结束物理地址4GB20GB532GB2580GB存储介质DRAMNVMSSDHDD例如:存储介质DRAM对应的物理地址空间为0-4GB的范围,应理解,DRAM的地址空间可能是连续的,也可能是离散的,本发明实施例对应并不做限定。当物理地址在物理地址空间为0-4GB的范围内时,该物理地址对应的存储介质为DRAM,再根据表1的对应关系,确定DRAM的时延类型为第二时延类型。还应理解,在本发明实施例中,对应关系表还可以包括:存储介质的起始物理地址、结束物理地址,例如:包括多种不同时延的存储介质的存储设备的物理空间为64M,对应关系表可以如表3所示,表3例如:当物理地址在物理地址空间为0-4GB的范围内时,该物理地址对应的存储介质为DRAM,而该DRAM的时延类型为第二时延类型。或者,当物理地址在物理地址空间为0-4GB的范围内时,该物理地址对应的存储介质的时延类型为第二时延类型。因此,可以直接根据物理地址与存储介质的时延类型的对应关系,确定物理地址对应的存储介质的时延类型。应理解,表2和表3所示的存储介质的物理地址的划分可以根据实际情况而定,这里仅是为了说明本发明实施例的技术方案,并不对本发明实施例构成限定,但需要指出的是:存储介质DRAM、HDD、SSD、NVM等对应的物理地址空间是不重叠的物理地址空间。还应理解,在本发明实施例中,仅以物理地址为例进行了详细说明,但本发明实施例并不仅限于此,类似地,对应关系表也可以包括:虚拟地址、存储介质和时延类型,其中,虚拟地址可以包括存储介质的起始虚拟地址、结束虚拟地址。为了简洁,在此不再赘述。当在步骤330中确定存储介质的时延类型为第一时延类型,且当前访问操作为读操作时,执行以下步骤:步骤341a,挂起当前访问操作的进程,并从该存储介质中读取当前访问操作的待访问数据。具体地,在本发明实施例中,MMC可以向CPU内核发送中断请求,该中断请求触发CPU内核挂起当前正在运行的进程,即:CPU内核可以释放当前运行的进程所占用的CPU资源,以便其他待运行的进程占用该CPU资源。步骤342a,当待访问数据的读取完成时,恢复运行之前挂起的进程。具体地,在本发明实施例中,对待访问数据进行读操作,则要将从物理地址对应的存储介质中读取的待访问数据反馈并存储到cache中,才意味着待访问数据的读取完成,此时,MMC可以向CPU内核发送恢复请求,该恢复请求触发CPU内核恢复运行之前挂起的进程。应理解,恢复运行之前挂起的进程,可以是将该进程重新调入就绪队列中进行排队,或者,可以直接以插队的方式,优先运行该进程。当在步骤330中确定存储介质的时延类型为第二时延类型,且当前访问操作为读操作时,执行以下步骤:步骤341b,从该存储介质中读取待访问数据。步骤342b,当待访问数据的读取完成时,继续运行当前访问操作的进程。具体地,在本发明实施例中,由于物理地址对应的存储介质的访问时延短,无需向CPU内核发送中断请求,只需在待访问数据的读取完成时,向CPU内核发送第三请求消息,例如:可以向CPU内核发送触发请求,该触发请求触发CPU内核运行当前等待的进程。需要说明的是:当前等待的进程是指占用着CPU内核资源,但是没有运行的进程。而当CPU内核收到触发消息时,例如:收到第三请求消息时,就会运行该进程。因此,本发明实施例提供的CPU调度的方法,通过获取当前访问操作的访问地址,根据访问地址确定当前访问操作访问的存储介质,进而确定的存储介质的时延类型,当确定存储介质的时延类型为时延较大的类型时,中止执行当前访问操作的进程,实现进程切换,当确定存储介质的为时延较小的类型时,继续等待执行当前访问进程,根据这种方式,可以在一定程度上减少访问操作的等待时间,提高进程处理效率,从而能够减小CPU资源的浪费,降低系统的开销。应理解,在本发明实施例中,当前访问操作为写操作时,可以根据现有技术来实现,即:可以不判断访存地址对应的存储介质的时延类型,将待访问数据写入存储介质。也可以根据本发明实施例中的流程来实现,即:在步骤320中确定存储介质的时延类型为第一时延类型,且对待访问数据进行写操作时,可以调度CPU内核挂起当前运行的进程,并将待访问数据写入该存储介质中;当待访问数据的写入完成时,调度CPU内核恢复运行之前挂起的进程,本发明实施例并不仅限于此。还应理解,在本发明实施例中,仅是以物理地址空间为例对本发明实施例的技术方案进行了详细的说明,不应对本发明实施例的技术方案构成任何限定,类似地,也可以是虚拟地址空间,为了简洁,在此不再赘述。还应理解,本发明实施例中的技术方案还可以支持超线程技术,基于这种技术能够利用特殊的硬件支持,把两个逻辑内核模拟成两个物理核,让单个处理器都能使用线程级并行计算的特点,对于第二时延类型的存储介质,可以直接在CPU的多套寄存器之间进行线程或进程的快速切换,无需从第二时延类型的存储介质中加载线程或进程的上下文,且这种切换的开销相对于访问第二时延类型的存储介质的开销要小得多,所以不用CPU等待;而对于第一时延类型的存储介质,由于其访问时延较长,CPU等待就会导致开销过大,需要从第一时延类型的存储介质中加载线程或进程的上下文,这就需要CPU执行进程切换,从而降低开销。图5示出了根据本发明另一实施例的CPU调度的方法500的示意性流程图。如图5所示,步骤510,获取当前访问操作的访问地址。步骤520,根据步骤510中获取的访问地址,确定当前访问操作的待访问数据是否存储在缓存中。具体地,在本发明实施例中,缓存可以为如图1中CPU100内的各级高速缓存cache。步骤530a,当在步骤520中确定待访问数据未存储在缓存中时,根据步骤510中获取的访问地址,确定该访问地址对应的存储介质。步骤540a,根据步骤530a中确定的存储介质,确定该存储介质的时延类型。当在步骤540a中确定存储介质的时延类型为第一时延类型时,且当前访问操作为读操作时,执行以下步骤:步骤541a,挂起当前运行的进程,并从该存储介质中读取待访问数据。步骤542a,当待访问数据的读取完成时,调度CPU内核恢复运行之前挂起的进程。当在步骤540a中确定存储介质的时延类型为第二时延类型时或当在步骤520中确定待访问数据已存储在缓存中时,执行以下步骤:步骤541b,控制从该存储介质中读取待访问数据。步骤542b,当待访问数据的读取完成时,调度CPU内核运行当前等待的进程。因此,本发明实施例提供的CPU调度的方法,通过获取当前访问操作的访问地址,根据访问地址确定访问操作的待访问数据未存储在缓存中时,确定访问地址对应的存储介质,进而确定的存储介质的时延类型,当确定存储介质的时延类型为时延较大的类型时,中止执行当前访问操作的进程,实现进程切换,当确定存储介质的为时延较小的类型时,继续等待执行当前访问进程,根据这种方式,可以在一定程度上减少访问操作的等待时间,提高进程处理效率,从而能够进一步减小CPU资源的浪费,降低系统的开销。应理解,在本发明实施例中,除步骤520之外的其他步骤的具体实现方法分别与图4中的各个步骤的具体实现方法类似,为了简洁,在此不再赘述。图6示出了根据本发明另一实施例的CPU调度的方法600的示意性交互过程图。图6的方法可以由CPU执行,其中,可以由CPU内的消息式内存控制器MMC来确定物理地址对应的存储介质的时延类型。图6所示的方法600为图2、图4或图5的一个例子,如图6所示,步骤610,CPU内核向MMC发送当前访问操作的物理地址。步骤620,MMC接收CPU内核发送的物理地址。步骤630,确定当前访问操作的待访问数据未存储在MMC内的缓存中。步骤640,MMC通过查询本地存储的存储介质与存储介质类型的对应关系,确定物理地址对应的存储介质的时延类型为第一时延类型。具体地,MMC也可以通过比较物理地址对应的存储介质的访问时延与预设值的大小关系,确定物理地址对应的存储介质的时延类型为第一时延类型。第一时延类型的存储介质可以是HDD、SSD或NANDFlash。步骤650,MMC向CPU内核发送中断请求,该中断请求用于指示CPU内核挂起当前正在运行的进程。步骤660,CPU内核接收MMC发送的中断请求,并根据该中断请求的指示挂起当前正在运行的进程。步骤670,MMC将从物理地址对应的存储介质中读取待访问数据。步骤660,MMC向CPU内核发送恢复请求,该恢复请求用于指示CPU内核恢复之前挂起的进程。具体地,当前访问操作为读操作时,MMC需要将从物理地址对应的存储介质中读取的待访问数据存储到cache中,才可以执行步骤660。步骤690、CPU内核接收MMC发送的恢复请求,并根据该恢复请求的指示恢复运行之前挂起的进程。因此,本发明实施例提供的CPU调度的方法,通过获取当前访问操作的物理地址,根据物理地址确定访问操作的待访问数据未存储在缓存中时,确定物理地址对应的存储介质,进而确定的存储介质的时延类型,当确定存储介质的时延类型为时延较大的类型时,中止执行当前访问操作的进程,实现进程切换,从而能够进一步减小CPU资源的浪费,降低系统的开销。应理解,在本发明实施例中,步骤640可以包括:MMC通过接收UAS的控制器反馈的物理地址对应的存储介质的时延类型为第一时延类型的指示消息,确定存储介质的时延类型为第一时延类型。需要说明的是,在本发明实施例中,还可以包括以下几种情况:1、若步骤630中确定待访问数据已存储在MMC内的缓存中时,直接从该缓存中读取待访问数据,并将其存储到cache中,不再执行步骤640及其之后的步骤。2、若步骤640中MMC通过查询本地存储的存储介质与存储介质类型的对应关系,确定物理地址对应的存储介质的时延类型为第二时延类型,则执行MMC向CPU内核发送触发请求,该请求用于指示CPU内核恢复运行当前等待的进程,以及CPU内核接收MMC发送的触发请求,并根据该触发请求的指示恢复运行当前等待的进程,即:继续执行当前访问操作的进程。3、存储设备为UAS,且UAS的控制器内有缓存。则在步骤640之后步骤650之前还要执行以下步骤:步骤641(图中未示出)、MMC向UAS的控制器发送物理地址。步骤642(图中未示出)、UAS的控制器根据物理地址,确定待访问数据是否存储在UAS的控制器内的缓存中。步骤643a、(图中未示出)、在UAS的控制器确定待访问数据未存储在UAS的控制器内的缓存中时,执行步骤650及其之后的步骤;步骤643b(图中未示出)、在MMC确定待访问数据已存储在UAS的控制器内的缓存中时,直接从该缓存中读取待访问数据,并将其存储到cache中,不再执行步骤650及其之后的步骤。上文中结合图2至图6,详细描述了根据本发明实施例的CPU调度的方法,下面将结合图7和图8,详细描述根据本发明实施例的CPU调度的装置。图7示出了根据本发明实施例的CPU调度的装置700的示意性框图。如图7所示,该装置700应用于一体化存储设备中,其中一体化存储设备包含有多种不同类型的存储介质,该装置700包括获取模块710、第一确定模块720、第二确定模块730和执行模块740,其中:获取模块710,用于获取当前访问操作的访存地址。第一确定模块720,用于确定获取模块710获取的访问地址确定访问操作访问的存储介质。第二确定模块730,用于确定第一确定模块720确定的存储介质的时延类型。执行模块740,用于在第二确定模块730确定的存储介质的时延类型为第一时延类型时,中止运行访问操作的进程;在第二确定模块730确定的存储介质的时延类型为第二时延类型时,继续执行访问操作的进程,其中,第一时延类型的存储介质的访问时延大于第二时延类型的存储介质的访问时延。因此,本发明实施例提供的调度CPU内核的装置,通过获取当前访问操作的访问地址,根据访问地址确定当前访问操作访问的存储介质,进而确定的存储介质的时延类型,当确定存储介质的时延类型为时延较大的类型时,中止执行当前访问操作的进程,实现进程切换,当确定存储介质的为时延较小的类型时,继续等待执行当前访问进程,根据这种方式,可以在一定程度上减少访问操作的等待时间,提高进程处理效率,从而能够减小CPU资源的浪费,降低系统的开销。可选地,在一种情形下,第二确定模块730具体用于获取存储介质的访问时延;若存储介质的访问时延大于预设值时,确定该存储介质的时延类型为第一时延类型;若存储介质的访问时延不大于预设值时,确定该存储介质的时延类型为所述第二时延类型。可选地,在另一种情形下,第二确定模块730具体用于获取预设的存储介质与该存储介质的时延类型之间的对应关系,并根据获取单元获取的对应关系,确定存储介质的时延类型。在本发明实施例中,第一时延类型的存储介质可以包括硬盘驱动器(HardDiskDrive,HDD)、固态硬盘(SolidStateDisk,SSD)和非易失性闪存(NANDFlash)中的至少一种存储介质,第二时延类型的存储介质可以包括动态随机存储器(DynamicRandomAccessMemory,DRAM)和非易失固态存储器(Non-violateMemory,NVM)中的至少一种存储介质。可选地,作为另一实施例,如图8所示,该装置700还包括:第三确定模块750,用于确定访问操作的待访问数据是否存储在缓存中,其中,第二确定模块730,具体用于在第三确定模块750确定待访问数据未存储在所述缓存中时,确定存储介质的时延类型。应理解,在本发明实施例中,根据本发明实施例的CPU调度内的装置700,可对应于根据本发明实施例的方法的执行主体,并且该CPU调度的装置700中的各个模块的上述和其它操作和/或功能分别为了实现图2至图6中的各个方法的相应流程,为了简洁,在此不再赘述。因此,本发明实施例提供的CPU调度的装置,通过获取当前访问操作的访问地址,根据访问地址确定当前访问操作访问的存储介质,进而确定的存储介质的时延类型,当确定存储介质的时延类型为时延较大的类型时,中止执行当前访问操作的进程,实现进程切换,当确定存储介质的为时延较小的类型时,继续等待执行当前访问进程,根据这种方式,可以在一定程度上减少访问操作的等待时间,提高进程处理效率,从而能够减小CPU资源的浪费,降低系统的开销。图9示出了根据本发明实施例的存储设备900的示意性框图。如图9所示,该存储设备900包括控制器910以及多种不同类型的存储介质920。其中,存储介质920,用于存储数据。具体地,在本发明实施例中,存储介质920可以为一体化存储设备UAS,UAS包括多种不同类型的存储介质和UAS的控制器,这些存储介质可以通过同一个内存接口被访问。控制器910用于:获取当前访问操作的访问地址;根据访问地址确定访问操作访问的存储介质;确定存储介质的时延类型;在确定存储介质的时延类型为第一时延类型的情况下,中止运行访问操作的进程;在确定存储介质的时延类型为第二时延类型的情况下,继续执行访问操作的进程,其中,第一时延类型的存储介质的访问时延大于第二时延类型的存储介质的访问时延。具体地,在本发明实施例中,控制器910可以包括内核core912、内存管理单元MMU914、高速缓冲存储器cache916以及消息式内存控制器MMC918。内核core912用于获取当前访问操作的访问地址,MMU914用于将虚拟地址转化为对应的物理地址,MMC918可以用于根据访问地址确定访问操作访问的存储介质,并确定存储介质的时延类型,内核core912还用于在MMC918确定存储介质的时延类型为第一时延类型的情况下,中止运行访问操作的进程;在MMC918确定存储介质的时延类型为第二时延类型的情况下,继续执行访问操作的进程。因此,根据本发明实施例的存储设备,可以通过获取当前访问操作的访问地址,根据访问地址确定当前访问操作访问的存储介质,进而确定的存储介质的时延类型,当确定存储介质的时延类型为时延较大的类型时,中止执行当前访问操作的进程,实现进程切换,当确定存储介质的为时延较小的类型时,继续等待执行当前访问进程,根据这种方式,可以在一定程度上减少访问操作的等待时间,提高进程处理效率,从而能够减小CPU资源的浪费,降低系统的开销。应理解,在本发明实施例中,MMC918还可以接收UAS的控制器反馈的存储介质的时延类型,内核core912用于在MMC918接收到UAS的控制器反馈的存储介质的时延类型为第一时延类型的情况下,中止运行访问操作的进程;在MMC918接收到UAS的控制器反馈的存储介质的时延类型为第二时延类型的情况下,继续执行访问操作的进程。可选地,在一种情形下控制器910具体用于:获取存储介质的访问时延;若存储介质的访问时延大于预设值,确定存储介质的时延类型为第一时延类型;若存储介质的访问时延不大于预设值,确定存储介质的时延类型为第二时延类型。可选地,在又一种情形下控制器910具体用于:获取预设的存储介质与存储介质的时延类型之间的对应关系;根据对应关系,确定存储介质的时延类型。可选地,在又一种情形下控制器910还用于:在确定存储介质的时延类型之前,确定当前访问操作的待访问数据是否存储在缓存中;在确定待访问数据未存储在缓存中的情况下,确定存储介质的时延类型。在本发明实施例中,第一时延类型的存储介质包括硬盘驱动器HDD、固态硬盘SSD和非易失性闪存NANDFlash中的至少一种存储介质,第二时延类型的存储介质包括动态随机存储器DRAM和非易失固态存储器NVM中的至少一种存储介质。本发明实施例的存储设备通过获取当前访问操作的访问地址,根据访问地址确定当前访问操作访问的存储介质,进而确定的存储介质的时延类型,当确定存储介质的时延类型为时延较大的类型时,中止执行当前访问操作的进程,实现进程切换,当确定存储介质的为时延较小的类型时,继续等待执行当前访问进程,根据这种方式,可以在一定程度上减少访问操作的等待时间,提高进程处理效率,从而能够减小CPU资源的浪费,降低系统的开销。还应理解,在本发明实施例中,根据本发明实施例的存储设备900的控制器910,可对应于根据本发明实施例的方法的执行主体,并且该存储设备900的控制器910可以实现图2至图6中的各个方法的相应流程,为了简洁,在此不再赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1