冷热页管理加速设备、方法、mmu、处理器及电子设备
技术领域:
:1.本技术涉及内存管理
技术领域:
:,尤其涉及一种冷热页管理加速设备、方法、mmu、处理器及电子设备。
背景技术:
::2.近些年,在内存中计算(in-memorycomputing)越来越受到重视,in-memorycomputing是一种在计算过程中尽量让数据保存在内存中,减少处理器(centralprocessingunit,cpu)和存储介质或者远端负责提供数据的节点的交互,以提高计算效率的技术,这使得内存管理被高度重视。3.在内存管理中,冷热页访问信息是内存利用率提升所必须的关键信息之一。例如,在介质交换场景中,根据冷热页访问信息将冷页面换出到磁盘等介质来给其他更需要内存空间的程序腾出内存空间,可以提高内存利用率。尤其是,冷热页访问信息越精确,介质交换越合理,越有利于提高内存利用率。4.在现有技术中,冷热页访问信息是由cpu以软件方式获取的,对冷热页访问信息的获取频率越高,获取的冷热页访问信息越准确,但与此同时cpu开销也就越大,严重影响cpu性能。技术实现要素:5.本技术的多个方面提供一种冷热页管理加速设备、方法、mmu、处理器及电子设备,代替cpu进行冷热页相关信息的获取,降低cpu资源的开销,提高获取冷热页相关信息的频率和精度。6.本技术实施例提供一种冷热页管理加速设备,互联于电子设备的处理器和物理内存之间,用于为所述物理内存对应的至少一个虚拟地址空间提供冷热页管理服务,包括:信息处理模块、至少一条硬件通道以及通道寄存器,其中,至少部分硬件通道包括第一寄存器和内部存储介质;所述第一寄存器,用于在其所属硬件通道被配置服务于虚拟地址空间时,存储所述虚拟地址空间的页表的基地址,所述基地址用于表征所述页表在所述物理内存中的存储地址;所述内部存储介质,用于在其所属硬件通道被配置服务于虚拟地址空间时,存储所述虚拟地址空间对应的冷热页访问信息;所述信息处理模块,用于针对被配置服务于虚拟地址空间的任一硬件通道,根据所述任一硬件通道中的第一寄存器中存储的页表的基地址,对所述物理内存中的对应页表进行周期性扫描,得到所述虚拟地址空间对应的冷热页访问信息,并写入所述任一硬件通道中的内部存储介质中;以及在每次扫描完成之后,通过所述通道寄存器向所述处理器提供扫描完成的通道号,以使所述处理器根据所述扫描完成的通道号对应硬件通道中的内部存储介质中的冷热页访问信息执行冷热页处理操作。7.本技术实施例提供一种冷热页管理方法,应用于互联于电子设备的处理器和物理内存之间的冷热页管理加速设备,所述冷热页管理加速设备包括至少一条硬件通道和通道寄存器,至少部分硬件通道包括第一寄存器和内部存储介质,所述方法包括:针对被配置服务于虚拟地址空间的任一硬件通道,根据所述任一硬件通道中的第一寄存器中存储的页表的基地址,对所述物理内存中的对应页表进行周期性扫描,得到所述虚拟地址空间对应的冷热页访问信息;将所述虚拟地址空间对应的冷热页访问信息,写入所述任一硬件通道中的内部存储介质中;以及在每次扫描完成之后,通过所述通道寄存器向所述处理器提供扫描完成的通道号,以使所述处理器根据所述扫描完成的通道号对应硬件通道中的内部存储介质中的冷热页访问信息执行冷热页处理操作。8.本技术实施例提供一种冷热页管理方法,应用于电子设备中的处理器,所述方法包括:接收冷热页管理加速设备触发的硬件中断,所述硬件中断是所述冷热页管理加速设备在针对其所包含的至少一条硬件通道中被配置服务于虚拟地址空间的任一硬件通道完成页表扫描后触发的;从所述冷热页管理加速设备的通道寄存器中获取扫描完成的通道号,根据所述完成扫描的通道号,从所述任一硬件通道的内部存储介质中获取所述虚拟地址空间对应的冷热页访问信息和/或冷热页链表;根据所述冷热页访问信息和/或冷热页链表执行冷热页处理操作。9.本技术实施例提供一种内存管理单元,包括本技术实施例提供的冷热页管理加速设备。10.本技术实施例提供一种处理器,包括本技术实施例提供的内存管理单元,该内存管理单元包含本技术实施例提供的冷热页管理加速设备。11.本技术实施例提供一种电子设备,包括处理器、物理内存和本技术实施例提供冷热页管理加速设备;或者,包括物理内存和本技术实施例提供的处理器,所述处理器包括本技术时很顺利提供的内存管理单元,所述内存管理单元包括本技术实施例提供的冷热页管理加速设备。12.本技术实施例提供一种存储有计算机程序的计算机可读存储介质,当所述计算机程序被处理器执行时,致使所述处理器能够实现本技术实施例提供的冷热页管理方法中的步骤。13.在本技术实施例中,提供一种专用的冷热页管理加速设备,互联于处理器与物理内存之间,通过提供至少一条硬件通道可为物理内存对应的至少一个虚拟地址空间提供冷热页管理服务,进而代替处理器冷热页相关信息的获取,例如至少可代替处理器以硬件方式对物理内存中的页表进行扫描,降低cpu资源的开销,另外,相比于以软件方式获取冷热页相关信息,以专用硬件获取冷热页相关信息,可充分发挥硬件在速度上优势,提高获取冷热页相关信息的频率和精度。附图说明14.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:15.图1为本技术实施例中的一种电子设备的内部结构示意图;16.图2为本技术实施例提供的一种虚拟地址空间与物理内存空间的映射关系示意图;17.图3a为本技术实施例提供的一种冷热页管理加速设备的结构示意图;18.图3b为本技术实施例提供的一种冷热页管理方法的流程示意图;19.图4a为本技术实施例提供的另一种冷热页管理加速设备的结构示意图;20.图4b为本技术实施例提供的另一种冷热页管理方法的流程示意图;21.图5a为本技术实施例提供的又一种冷热页管理加速设备的结构示意图;22.图5b为本技术实施例提供的又一种冷热页管理方法的流程示意图;23.图6a为本技术实施例提供的一种纯硬件实现的信息处理模块的结构示意图;24.图6b为本技术实施例提供的一种软硬结合方式实现的信息处理模块的结构示意图;25.图6c为本技术实施例提供的另一种电子设备的内部结构示意图;26.图6d为本技术实施例提供的又一种冷热页管理加速设备的结构示意图;27.图7a为本技术实施例提供的从冷热页管理加速设备角度描述的冷热页管理方法的流程示意图;28.图7b为本技术实施例提供的从处理器角度描述的冷热页管理方法的流程示意图。具体实施方式29.为使本技术的目的、技术方案和优点更加清楚,下面将结合本技术具体实施例及相应的附图对本技术技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。30.在内存管理中,冷热页访问信息是内存利用率提升所必须的关键信息之一。冷热页访问信息是由cpu以软件方式通过对页表(pagetable)进行扫描获取的,对页表的扫描频率越高,获取的冷热页访问信息越准确,但与此同时cpu开销也就越大,严重影响cpu性能,所以,现在冷热页访问信息的获取不能过于频繁,导致冷热页访问信息的精度不高。31.针对上述技术问题,本技术实施例提供一种专用的冷热页管理加速设备,可应用于任何电子设备中,具体互联于电子设备的处理器与物理内存之间,通过提供至少一条硬件通道可为物理内存对应的至少一个虚拟地址空间提供冷热页管理服务,进而代替处理器进行冷热页相关信息的获取,例如至少可代替处理器对物理内存中的页表进行扫描,降低cpu资源的开销,另外,相比于以软件方式,以专用硬件获取冷热页相关信息,可充分发挥硬件在速度上优势,提高获取冷热页相关信息的频率和精度。32.图1为本技术实施例提供的一种电子设备的结构示意图。如图1所示,该电子设备包括cpu10、物理内存20,以及互联于cpu10和物理内存20之间的冷热页管理加速设备30。可选地,该冷热页管理加速设备30通过外设部件互连标准(peripheralcomponentinterconnect,pci)总线或pcie(peripheralcomponentinterconnectexpress)总线与cpu10互联,并通过内存总线与物理内存20互联。33.在本技术实施例中,并不对电子设备的产品形态进行限定,例如可以是智能手机、笔记本电脑、台式机电脑、平板电脑、智能手环、智能手表、智能家电、常规服务器、云服务器以及服务器集群等各种具有cpu10和物理内存20的电子设备。除了cpu10和物理内存20之外,电子设备还可以包括通信组件、电源组件、显示屏和音频组件等。其中,显示屏和音频组件为可选组件,具体可视电子设备的产品形态而定。34.本技术实施例的电子设备,使用虚拟内存技术进行内存管理,每个应用程序可以分配自己的虚拟地址空间,虚拟地址空间的大小可以小于、等于或大于实际的物理内存20空间。在使用虚拟内存技术进行内存管理时,采用一种称为分页(paging)的技术,将虚拟地址空间划分为页面(page),而相应的物理内存20空间被划分为与页面大小相同的物理存储单元,例如该物理存储单元可以称为页框或物理块等,可视具体操作系统而定,对此不做限定。其中,图2示例性的给出了虚拟地址空间与物理内存20空间之间的一种映射关系。在图2中,以虚拟地址空间为36k,物理内存空间为20k进行图示,物理内存空间包括0-4共5个物理存储单元,每个物理存储单元和页面的大小均为4k,其中页面0映射到物理存储单元2,页面1映射到物理存储单元1,页面3映射到物理存储单元0,页面4映射到物理存储单元4,页面5和页面7均映射到物理存储单元3,其它页面暂时未映射到任何物理存储单元,在图2中以“x”进行表示。35.在本实施例中,通过映射记录表(简称为页表)维护每个虚拟地址空间和物理内存20空间的映射关系,该页表包括至少一个页表项,每个页表项存储一个页面和其对应物理存储单元(如页框或物理块)之间的地址映射关系,例如每个页表项中存储页面的编号和对应物理存储单元的编号。页表被存储在物理内存20中,页表具有基地址,该基地址用于表征页表在物理内存20中的起始存储地址。如图1所示,物理内存20中存储有虚拟地址空间1-n各自对应的页表,即页表1-n。其中,n是大于等于1的整数。36.cpu10在运行应用程序或其进程的过程中,当需要访问一个虚存地址时,通过页表完成虚拟地址到物理地址的映射,并对映射到的物理地址进行实际访问。其中,如图1所示,cpu10包括内存管理单元(memorymanagementunit,mmu),cpu10通过该页表进行内存访问的过程主要是由mmu负责完成的,该详细过程如下:37.当cpu10需要访问某个虚拟地址时,mmu首先到页表中去查询该虚拟地址所属的页面是否已映射到某个物理存储单元,并且该页面与物理存储单元的映射关系已经存在于该页表中。如果存在,根据该虚拟地址所属的页面与该页面映射到的物理存储单元之间的地址映射关系,将该虚拟地址映射为对应的物理地址,然后根据该物理地址去访问物理内存20。基于图2所示的映射关系,假设cpu10需要访问虚拟地址0,该虚拟地址0落在页面0的地址范围内(页0的地址范围是0到4095),从图2可知,页面0所对应(映射)的物理存储单元为2(物理存储单元2的地址范围是8192到12287),因此cpu10将该虚拟地址0转化为物理地址8192,并把地址8192送到内存地址总线上去访问物理内存20。该物理内存20对前述虚拟地址到物理地址的映射无感知,只会收到对地址8192的读请求并执行它。38.如果上述页面与物理存储单元的映射关系未经存在于页表中,则意味着该虚存地址所属的页面还未被载入物理内存20,这说明发生了页面访问错误,可以启动请页机制,即cpu10调用相应的系统操作函数,判断该虚拟地址是否为有效地址。如果请求访问的虚拟地址是有效的地址,意味着请页成功,将该虚拟地址指向的页面读入到物理内存20中一个空闲物理存储单元中,并在页表中添加一个页表项,用来存储该页面与物理存储单元之间的地址映射关系;之后,cpu10从发生页面错误的地方重新开始运行。如果请求访问的虚拟地址是无效的地址,说明cpu10在试图访问一个不存在的虚拟地址,意味着请页失败,此次访问操作会被终止。39.在上述请页成功的情况下,物理内存20中有可能发生没有空闲页框的情况,此时,可触发介质交换机制,即按照页面被访问的冷热程度,将访问热度较低的页面从其所占据的物理存储单元中移出,以便于该物理存储单元装载新的页面,提高物理内存20空间的使用了。其中,对移出的页面根据两种情况来处理:如果该页面未被修改过,可以直接将该页面删除;如果该页面曾经被修改过,可以将该页面写入到外部存储介质,例如磁盘中。其中,页面被访问的冷热程度可以通过冷热页访问信息得到。冷热页访问信息是指虚拟地址空间中各页面被访问的信息,根据这些页面的访问信息可以统计出虚拟地址空间中哪些页面经常被访问,哪些页面不经常被访问,进而得出页面被访问的冷热程度。40.在介质交换场景中,如果冷热页访问信息的精度较低,有可能出现一个页面刚被换出物理内存20,很快又因为被访问而被重新换入物理内存20的情况,所以冷热页访问信息的准确度直接关系到介质交换的合理性和精确性,有利于避免页面频繁的换入换出,进而提高物理内存20空间的利用率和io性能。41.需要说明的是,冷热页访问信息除了在介质交换场景中具有重要作用之外,在一些软件性能优化场景中也起着至关重要的作用,例如可以根据冷热页访问信息针对应用程序进行内存资源的扩展、释放或内存分布调整等,以提高应用程序的性能。42.在本技术实施例中,为了提高获取冷热页访问信息的频率和精度,提供一种专用的冷热页管理加速设备30,该冷热页管理加速设备30互联于cpu10和物理内存20之间,用于为物理内存20对应的至少一个虚拟地址空间提供冷热页管理服务。如图1所示,冷热页管理加速设备30包括n条硬件通道,分别用于为n个虚拟地址空间提供冷热页管理服务,n是大于等于1的整数。其中,每个应用程序(或进程)对应一个虚拟地址空间。其中,冷热页管理服务是指为虚拟地址空间或者是为虚拟地址空间对应的应用程序(或进程)提供冷热页相关信息的服务过程,至少包括对页表进行周期性扫描得到冷热页访问信息的服务过程。43.可选地,如图3a所示,冷热页管理加速设备30的一种实现结构包括:信息处理模块31、至少一条硬件通道32以及通道寄存器33。其中,各条硬件通道32具有同样的实现结构,且可被配置为一个虚拟地址空间提供冷热页管理服务。需要说明的是,同一硬件通道32在同一时间可以为一个虚拟地址空间提供冷热页管理服务,在不同时间可以为不同虚拟地址空间提供冷热页管理服务。也就是说,硬件通道32与虚拟地址空间之间的服务关系可按需进行配置,与此同时,随着冷热页管理服务的结束,该服务关系也可以进行解除。44.进一步,如图3a所示,每条硬件通道32至少包括:第一寄存器321和内部存储介质322。其中,内部存储介质322可以是但不限于:静态随机存取存储器(sram)等各种易失性存储介质,采用易失性存储介质有利于提高读写速度。其中,对任一条硬件通道32而言,在该硬件通道32被配置服务于一个虚拟地址空间的情况下,该硬件通道32中的第一寄存器321的作用是存储该硬件通道32所服务的虚拟地址空间的页表的基地址;相应地,该硬件通道32中的内部存储介质322的作用是存储该硬件通道32所服务的虚拟地址空间对应的冷热页访问信息。45.可选地,对任一条硬件通道32而言,在该硬件通道32被配置服务于一个虚拟地址空间的情况下,在使用该硬件通道32为对应的虚拟地址空间提供冷热页管理服务之前,可以对该硬件通道32进行初始化操作,以完成相关信息的配置,例如,页表的基地址可在冷热页管理加速设备30的初始化过程中被写入第一寄存器321中。与页表的基地址不同,内部存储介质322中的冷热页访问信息是由信息处理模块31获取并写入内部存储介质322的。46.其中,信息处理模块31与各条硬件通道32、物理内存20、cpu10以及通道寄存器33互联,用于针对被配置服务于虚拟地址空间的任一硬件通道32,根据该任一硬件通道32中的第一寄存器321中存储的页表的基地址,对物理内存20中的对应页表进行周期性扫描,以周期性地得到该硬件通道32所服务的虚拟地址空间对应的冷热页访问信息,并将该冷热页访问信息写入该任一硬件通道32中的内部存储介质322中;随着周期性的扫描操作,内部存储介质322中的冷热页访问信息会被周期性地更新。47.在本技术实施例中,页表中除了记录有之外,还记录虚拟页面对应访问信息的字段,根据这些字段获取虚拟页面的访问信息,进而对虚拟页面进行冷热统计。页表是由虚拟地址空间转到物理内存20空间的入口,不仅维护有页面与物理存储单元之间的地址映射关系,在页表的页表项中还设置了一些访问控制字段,这些访问控制字段包括但不限于:用来指明对应页面允许何种操作(例如只读或读写)的字段,用来指明对应页面是否被访问(access,简称为a)的字段,以及用来指明对应页面是否被写过(dirty,简称为d)的字段。其中,a字段:默认取值为0,当页面被访问(包括读或写)过后,该a字段会被置为1,当该a字段被置为1后允许软件将其重新置为0。d字段:默认取值为0,当页面被执行写操作后,硬件将d字段置为1,表明该页面比外部存储介质中的页面要新,当因为物理内存20不足需要将该页面移出时,需首先将其页面存储至外部存储介质中,之后由软件将d字段重新置为0。为便于描述,将a字段和d字段合称为ad字段,可选地,该ad字段占据两个比特(bit)位,但并不限于此。48.基于上述页表中的ad字段,信息处理模块31可以根据页表的基地址,周期性地对页表进行扫描,并根据页表中的ad字段统计虚拟地址空间在每个扫描周期内对应的冷热页访问信息。每个扫描周期内的冷热页访问信息包括虚拟地址空间中在该扫描周期内被访问过的页面的地址信息,这里“被访问过的页面”既包括被执行过读操作的页面,也包括被执行过写操作的页面。49.在本技术实施例中,并不限定记录冷热页访问信息的方式。可选地,可以以位图(bitmap)的方式记录一次全量页表扫描后获取的对应虚拟地址空间中所有被访问过的页面的位置。该位图的大小与虚拟地址空间包含的页面的数量相同,在位图中,对于被访问过的页面,其对应的比特位被置为指定值(如“1”或“0”),用于表示该页面被访问过。进一步可选地,bitmap可以是两个,分别保存取值为1的a字段对应的页面位置和取值为1的d字段对应的页面位置。50.除了针对被配置服务于虚拟地址空间的每条硬件通道32进行页表扫描和冷热页访问信息的统计之外,信息处理模块31还用于在每次扫描完成之后,通过通道寄存器33向cpu10提供扫描完成的通道号,以使cpu10根据扫描完成的通道号对应硬件通道32中的内部存储介质322中的冷热页访问信息执行冷热页处理操作。在本实施例中,通道寄存器33的作用是辅助信息处理模块31向cpu10提供扫描完成的通道号,以便于cpu10根据扫描完成的硬件通道32中的内部存储介质322中的冷热页访问信息执行冷热页处理操作。51.进一步可选地,信息处理模块31除了代替cpu10完成页表扫描和冷热页访问信息的统计之外,还可以根据扫描得到的冷热页访问信息进行冷热页链表的维护和更新。具体地,信息处理模块31还用于:针对被配置服务于虚拟地址空间的任一硬件通道32,根据任一硬件通道32中的内部存储介质322中的冷热页访问信息,生成该虚拟地址空间对应的冷热页链表,并写入任一硬件通道32中的内部存储介质322中。在该可选实施例中,在信息处理模块31每次扫描完成之后通过通道寄存器33向cpu10提供扫描完成的通道号的情况下,cpu10可以根据该扫描完成的通道号对应的硬件通道32中的内部存储介质322中的冷热页访问信息和/或冷热页链表执行冷热页处理操作。52.其中,冷热页链表是指负责根据页面的访问热度对页面进行组织管理的数据结构,该链表中包括多个页面节点,每个页面节点对应虚拟地址空间中的一个页面,且每个页面节点中至少存储有其所对应的页面的地址信息(例如页面的编号)。其中,页面的访问热度除了与页面被访问的频次有关之外,还与介质交换场景中采用的页面交换算法有关,可选地,页面交换算法可以是但不限于:最近最少使用(leastrecentlyused,lru)算法、最不经常使用(leastfrequentlyused,lfu)或最近未使用(notrecentlyused,nru)算法。如果采用lru算法,则冷热页链表可称为lru链表;如果采用lfu算法,则冷热页链表可称为lfu链表;如果采用nru算法,则冷热页链表可称为nru链表。相应地,冷热页链表中各页面节点之间的顺序也是按照相应算法的原理进行维护和更新的,以lru链表为例,对于最近最少使用的页面节点排在lru链表的尾部,反之,对于最近经常使用的页面节点排在lru链表的头部或靠近头部的位置。53.在本技术实施例中,并不限定冷热页访问信息和冷热页链表在内部存储介质322中的存储方式。在一可选实施例中,上述内部存储介质322可划分为第一存储区域和第二存储区域,第一存储区域用于存储冷热页访问信息,第二存储区域用于存储冷热页链表。或者,在另一可选实施例中,每条硬件通道32中包含两个内部存储介质,分别是第一内部存储介质和第二内部存储介质,第一内部存储介质用于存储冷热页访问信息,第二内部存储介质用于存储冷热页链表。54.上文对图3a所示冷热页管理加速设备30的内部结构以及各模块的功能进行了介绍说明。下面对图3a所示冷热页管理加速设备30的工作原理进行说明。55.其中,图3a所示的冷热页管理加速设备30具备驱动程序,可以在电子设备上安装该冷热页管理加速设备30具备驱动程序。该驱动程序中记录有至少一条硬件通道32的通道号,并且面向电子设备上的应用程序提供有用于注册的应用程序接口(applicationprograminterface,api)。其中,在使用图3a所示的冷热页管理加速设备30之前,电子设备的cpu10执行该冷热页管理加速设备30的驱动程序,可以完成应用程序的注册、硬件通道32的分配以及硬件通道32的初始化操作;之后,硬件通道32可为进行注册的应用程序对应的虚拟地址空间提供冷热页管理服务。如图3b所示,一种应用于图3a所示的冷热页管理加速设备30的冷热页管理方法包括:56.第一阶段:电子设备的cpu10执行冷热页管理加速设备30的驱动程序以进行应用程序的注册、硬件通道32的分配以及硬件通道32的初始化操作,包括以下步骤301b-303b。57.301b、响应电子设备上任一应用程序通过冷热页管理加速设备的驱动程序中的注册api发起的注册请求,该注册请求包括应用程序对应的虚拟地址空间的页表的基地址和应用程序自定义的处理函数的地址。58.在此说明,应用程序可以自定义所需的处理函数并进行注册,但并不限于此,也就是说,自定义处理函数并进行注册为可选操作。如果应用程序并未自定义所需的处理函数,则cpu10可以仅执行默认的冷热页处理操作。为了便于区分,将处理函数所限定的与冷热页访问信息相关的处理操作称为自定义的冷热页处理操作。59.302b、从至少一条硬件通道中为发起注册请求的应用程序(或该应用程序对应的虚拟地址空间)分配为其提供冷热页管理服务的一条硬件通道。60.可选地,可以从空闲硬件通道32中随机分配一条硬件通道32给发起注册请求的应用程序(或该应用程序对应的虚拟地址空间);或者,也可以根据各条硬件通道32的通道号,从空闲硬件通道32中选择通道号最小或最大的一条硬件通道32分配给发起注册请求的应用程序(或该应用程序对应的虚拟地址空间);或者,也可以根据各条硬件通道32的使用频率,从空闲硬件通道32中选择使用频率最低的一条硬件通道32分配给发起注册请求的应用程序(或该应用程序对应的虚拟地址空间)。61.303b、针对所分配的硬件通道执行初始化操作,即将该虚拟地址空间对应的页表的基地址写入所分配的硬件通道中的第一寄存器中,并将处理函数的地址保存到所分配的硬件通道的数据结构中。62.第二阶段:冷热页管理加速设备30中的信息处理模块31配合被配置服务于虚拟地址空间的硬件通道32提供冷热页服务,包括以下步骤304b-306b。63.304b、针对被配置服务于虚拟地址空间的任一硬件通道,根据任一硬件通道中的第一寄存器中存储的页表的基地址,对物理内存中的对应页表进行周期性扫描,得到虚拟地址空间对应的冷热页访问信息。64.在此说明,本技术实施例并不限定信息处理模块31对页表进行扫描所使用的扫描周期,可以是默认的扫描周期,也可以是针对各硬件通道32预先配置的扫描周期。65.305b、将虚拟地址空间对应的冷热页访问信息,写入任一硬件通道中的内部存储介质中;以及根据该冷热页访问信息,生成虚拟地址空间对应的冷热页链表,并将该冷热页链表写入任一硬件通道中的内部存储介质中。66.在此说明,在扫描页表过程中,信息处理模块31可以每当扫描到被访问过的页面信息时,就将该页面信息(该页面信息是冷热页访问信息中的一个页面访问信息)写入到内部存储介质322中,也可以是扫描完全量页表之后,一次性将所有扫描到的被访问过的页面信息(即冷热页访问信息)写入到内部存储介质322中。相应地,在生成虚拟地址空间对应的冷热页链表时,可以是每扫描到被访问过的一个页面信息就对当前冷热页链表中各页面节点之间的顺序进行一次调整,通过多次调整操作得到调整后的冷热页链表;或者,也可以是在扫描完全量页表之后,根据完整的冷热页访问信息对当前冷热页链表中各页面节点之间的顺序进行统一调整,以得到调整后的冷热页链表。67.306b、在每次扫描完成之后,通过通道寄存器向cpu提供扫描完成的通道号,以使cpu根据任一硬件通道中的内部存储介质中的冷热页访问信息和/或冷热页链表执行冷热页处理操作。68.第三阶段:cpu10根据冷热页访问信息和/或冷热页链表执行冷热页处理操作,包括以下步骤307b。69.307b、cpu根据上述通道号对应硬件通道中的内部存储介质中的冷热页访问信息和/或冷热页链表执行冷热页处理操作,所述冷热页处理操作包括默认的冷热页处理操作和/或处理函数所限定的自定义的冷热页处理操作。70.在本技术实施例中,对cpu10执行的冷热页处理操作不做限定,凡是与冷热页访问信息相关的处理操作均可作为本技术实施例中的冷热页处理操作。本技术实施例中的冷热页处理操作包括但不限于:默认的冷热页处理操作,和/或,自定义的冷热页处理操作,即上文中处理函数所限定的与冷热页访问信息相关的处理操作。71.可选地,默认的冷热页处理操作包括但不限于:刷新虚拟地址空间对应的转换旁路缓冲器(translationlookasidebuffers,tlb),tlb是介于cpu10与物理内存20之间的高速缓存(cache),用于存储页表中最近访问过的页表项,可以减少cpu10访问物理内存20的次数,而且由于tlb更加靠近cpu10,其访问速度也更快,可以提高cpu查询页表项的速度。72.可选地,处理函数用于限定与冷热页访问信息相关的处理操作,包括但不限于以下至少一种:对冷热页链表尾部的页面节点对应的页面进行换页操作;根据冷热页访问信息改变对应应用程序的缓存大小,例如可以增大缓存或减小缓存;根据冷热页访问信息释放对应应用程序占用的部分内存空间;根据冷热页访问信息为对应应用程序申请增加内存空间;以及根据冷热页访问信息改变对应应用程序的内存分布情况,例如释放并重新申请内存,或将访问热度接近的页面交换到相邻位置。73.进一步,在图3a所示冷热页管理加速设备30的结构基础上,如图4a所示,每条硬件通道32还包括:第二寄存器323。对任一条硬件通道32而言,在该硬件通道32被配置服务于一个虚拟地址空间的情况下,第二寄存器323的作用是存储该硬件通道32所服务的虚拟地址空间对应的扫描周期(可简称为是硬件通道32所使用的扫描周期)。对于不同应用程序或其对应的虚拟地址空间而言,所使用的扫描周期可以相同,也可以不相同。与页表的基地址类似,每条硬件通道32所使用的扫描周期可在冷热页管理加速设备30的初始化过程中被写入第二寄存器323中。74.其中,图4a所示的冷热页管理加速设备30具备驱动程序,可以在电子设备上安装该冷热页管理加速设备30具备驱动程序。该驱动程序中记录有至少一条硬件通道32的通道号,并且面向电子设备上的应用程序提供有用于注册的应用程序接口。其中,在使用图4a所示的冷热页管理加速设备30之前,电子设备的cpu10执行该冷热页管理加速设备30的驱动程序,可以完成应用程序的注册、硬件通道32的分配以及硬件通道32的初始化操作;之后,硬件通道32可为进行注册的应用程序对应的虚拟地址空间提供冷热页管理服务。如图4b所示,一种应用于图4a所示的冷热页管理加速设备30的冷热页管理方法包括:75.第一阶段:电子设备的cpu10执行冷热页管理加速设备30的驱动程序以进行应用程序的注册、硬件通道32的分配以及硬件通道32的初始化操作,包括以下步骤401b-403b。76.401b、响应电子设备上任一应用程序通过冷热页管理加速设备的驱动程序中的注册api发起的注册请求,该注册请求包括应用程序对应的虚拟地址空间的页表的基地址、扫描周期和应用程序自定义的处理函数的地址。77.402b、从至少一条硬件通道中为发起注册请求的应用程序(或该应用程序对应的虚拟地址空间)分配为其提供冷热页管理服务的一条硬件通道。78.403b、针对所分配的硬件通道执行初始化操作:将该虚拟地址空间对应的页表的基地址和扫描周期分别写入所分配的硬件通道中的第一寄存器和第二寄存器中,并将处理函数的地址保存到所分配的硬件通道的数据结构中。79.第二阶段:冷热页管理加速设备30中的信息处理模块31配合被配置服务于虚拟地址空间的硬件通道32提供冷热页服务,包括以下步骤404b-407b。80.404b、针对被配置服务于虚拟地址空间的任一硬件通道,从任一硬件通道中的第二寄存器中读取扫描周期。81.405b、根据任一硬件通道中的第一寄存器中存储的页表的基地址,按照所读取的扫描周期对物理内存中的对应页表进行周期性扫描,得到虚拟地址空间对应的冷热页访问信息。82.406b、将虚拟地址空间对应的冷热页访问信息,写入任一硬件通道中的内部存储介质中,以及根据该冷热页访问信息,生成虚拟地址空间对应的冷热页链表,并将该冷热页链表写入任一硬件通道中的内部存储介质中。83.407b、在每次扫描完成之后,通过通道寄存器向cpu提供扫描完成的通道号,以使cpu根据任一硬件通道中的内部存储介质中的冷热页访问信息和/或冷热页链表执行冷热页处理操作。84.第三阶段:cpu10根据冷热页访问信息和/或冷热页链表执行冷热页处理操作,包括以下步骤408b。85.408b、cpu根据上述扫描完成的通道号对应硬件通道中的内部存储介质中的冷热页访问信息和/或冷热页链表执行冷热页处理操作,所述冷热页处理操作包括默认的冷热页处理操作和/或处理函数所限定的自定义的冷热页处理操作。86.在此说明,本实施例中与上述实施例相同的步骤,其详细描述可参见前述实施例,在此不再赘述。87.进一步,在图4a所示冷热页管理加速设备30的结构基础上,如图5a所示,每条硬件通道32还包括:第三寄存器324和/或第四寄存器325。对任一条硬件通道32而言,在该硬件通道32被配置服务于一个虚拟地址空间的情况下,第三寄存器324的作用是存储该硬件通道32所服务的虚拟地址空间对应的第一内存地址;相应地,第四寄存器325的作用是存储该硬件通道32所服务的虚拟地址空间对应的第二内存地址。其中,第一内存地址用于表征物理内存20中用于存储该虚拟地址空间对应的冷热页访问信息的内存地址;第二内存地址用于表征物理内存20中用于存储该虚拟地址空间对应的冷热页链表的内存地址。对于不同应用程序或其对应的虚拟地址空间而言,所使用的第一内存地址不相同,所使用的第二内存地址也不相同。88.在本实施例中,将第一内存地址存储于第三寄存器324中,是为了方便信息处理模块31将对应硬件通道32中的内部存储介质322中的冷热页访问信息提供给cpu10;同理,将第二内存地址存储于第四寄存器325中,是为了方便信息处理模块31将对应硬件通道32中的内部存储介质322中的冷热页链表提供给cpu10。89.在本实施例中,并不限定将第一内存地址和/或第二内存地址存储到第三寄存器324和/或第四寄存器325中的时机,可以在信息处理模块31将冷热页访问信息和/或冷热页链表提供给cpu10之前的任何时机。在一可选实施例中,可以在信息处理模块31将扫描完成的通道号提供给cpu10之后,由cpu10将第一内存地址和/或第二内存地址写入到第三寄存器324和/或第四寄存器325中,以供信息处理模块31将冷热页访问信息和/或冷热页链表写入物理内存20,使得cpu10从物理内存20中读取冷热页访问信息和/或冷热页链表,以达到将冷热页访问信息和/或冷热页链表提供给cpu10的目的。90.进一步可选地,在本技术实施例中,并不限定为应用程序分配第一内存地址和/或第二内存地址的时机。可选地,可以在需要获取冷热页访问信息和/或冷热页链表时,临时为应用程序分配第一内存地址和/或第二内存地址。例如,在信息处理模块31将扫描完成的通道号提供给cpu10之后,cpu10临时调用操作系统中的内存分配函数为应用程序分配第一内存地址和/或第二内存地址。或者,可选地,为了提高内存分配效率,确保获取冷热页访问信息和/或冷热页链表的及时性,可以预先为应用程序分配第一内存地址和/或第二内存地址。例如,可在冷热页管理加速设备30的初始化过程中预先分配第一内存地址和/或第二内存地址,并将第一内存地址和/或第二内存地址保存在为该应用程序服务的硬件通道32的数据结构中,这样,当cpu10接收到信息处理模块31在扫描完成该硬件通道32后提供的通道号的情况下,可以将第一内存地址和/或第二内存地址写入到第三寄存器324和/或第四寄存器325中,对此不做限定。91.其中,图5a所示的冷热页管理加速设备30具备驱动程序,可以在电子设备上安装该冷热页管理加速设备30具备驱动程序。该驱动程序中记录有至少一条硬件通道32的通道号,并且面向电子设备上的应用程序提供有用于注册的应用程序接口和读取相关寄存器中数据的api。其中,在使用图5a所示的冷热页管理加速设备30之前,电子设备的cpu10执行该冷热页管理加速设备30的驱动程序,可以完成应用程序的注册、硬件通道32的分配以及硬件通道32的初始化操作;之后,硬件通道32可为进行注册的应用程序对应的虚拟地址空间提供冷热页管理服务。如图5b所示,一种应用于图5a所示的冷热页管理加速设备30的冷热页管理方法包括:92.第一阶段:电子设备的cpu10执行冷热页管理加速设备30的驱动程序以进行应用程序的注册、硬件通道32的分配以及硬件通道32的初始化操作,包括以下步骤501b-504b。93.501b、响应电子设备上任一应用程序通过冷热页管理加速设备的驱动程序中的注册api发起的注册请求,该注册请求包括应用程序对应的虚拟地址空间的页表的基地址、扫描周期和应用程序自定义的处理函数的地址。94.502b、从至少一条硬件通道中为发起注册请求的应用程序(或该应用程序对应的虚拟地址空间)分配为其提供冷热页管理服务的一条硬件通道。95.503b、针对所分配的硬件通道执行初始化操作:将该虚拟地址空间对应的页表的基地址和扫描周期分别写入所分配的硬件通道中的第一寄存器和第二寄存器中,并将处理函数的地址保存到所分配的硬件通道的数据结构中;96.504b、为应用程序分配第一内存地址和/或第二内存地址,并将第一内存地址和/或第二内存地址保存到所分配的硬件通道的数据结构中。97.第二阶段:冷热页管理加速设备30中的信息处理模块31配合被配置服务于虚拟地址空间的硬件通道32提供冷热页服务,包括以下步骤505b-509b。98.505b、针对被配置服务于虚拟地址空间的任一硬件通道,从任一硬件通道中的第二寄存器中读取扫描周期。99.506b、根据任一硬件通道中的第一寄存器中存储的页表的基地址,按照所读取的扫描周期对物理内存中的对应页表进行周期性扫描,得到虚拟地址空间对应的冷热页访问信息。100.507b、将虚拟地址空间对应的冷热页访问信息,写入任一硬件通道中的内部存储介质中,以及根据该冷热页访问信息,生成虚拟地址空间对应的冷热页链表,并将该冷热页链表写入任一硬件通道中的内部存储介质中。101.508b、在每次扫描完成之后,通过通道寄存器向cpu提供扫描完成的通道号,以使cpu根据任一硬件通道中的内部存储介质中的冷热页访问信息和/或冷热页链表执行冷热页处理操作。102.第三阶段:cpu10根据冷热页访问信息和/或冷热页链表执行冷热页处理操作,包括以下步骤509b-510b。103.509b、cpu根据上述扫描完成的通道号,将第一内存地址和/或第二内存地址写入对应硬件通道中的第三寄存器和/或第四寄存器中,以供信息处理模块将对应硬件通道中的内部存储介质中的冷热页访问信息和/或冷热页链表写入物理内存中;104.510b、信息处理模块根据第三寄存器和/或第四寄存器中的第一内存地址和/或第二内存地址,采用直接存储器访问(directmemoryaccess,dma)方式将对应硬件通道中的内部存储介质中的冷热页访问信息和/或冷热页链表写入物理内存中;105.511b、cpu根据第一内存地址和/或第二内存地址从物理内存中读取冷热页访问信息和/或冷热页链表,根据冷热页访问信息和/或冷热页链表执行冷热页处理操作,所述冷热页处理操作包括默认的冷热页处理操作和/或处理函数所限定的自定义的冷热页处理操作。106.在此说明,本实施例中与上述实施例相同的步骤,其详细描述可参见前述实施例,在此不再赘述。107.在图5a和图5b所示实施例中,信息处理模块31向cpu10提供冷热页访问信息和/或冷热页链表的方式是由信息处理模块31根据cpu10提供的第一内存地址和/或第二内存地址,采用dma方式将冷热页访问信息和/或冷热页链表写入物理内存20中,由cpu10从物理内存20中读取冷热页访问信息和/或冷热页链表,但并不限于此。例如,cpu10也可以直接从对应硬件通道32中的内部存储介质322中读取冷热页访问信息和/或冷热页链表。其中,由信息处理模块31将冷热页访问信息和/或冷热页链表写入物理内存20中,由cpu10从物理内存20中读取冷热页访问信息和/或冷热页链表,可以减少cpu10的io操作,可节约cpu10开销,提高cpu10获取冷热页访问信息和/或冷热页链表的效率,为优选实施方式。108.在上述各实施例中,并未限定信息处理模块31通过通道寄存器33向cpu10提供扫描完成的通道号的实施方式,凡是能够通过通道寄存器33向cpu10提供扫描完成的通道号的寄存器使用方式均适用于本技术实施例。下面对此举例说明:109.在一可选实施例中,信息处理模块31每次扫描完成一个硬件通道32时,将该硬件通道32的通道号直接写入通道寄存器33中。相应地,cpu10可以定时轮询通道寄存器33,以便获取通道寄存器33中被信息处理模块31新写入的通道号;当轮询到新写入的通道号时,读取该新写入的通道号,并在读取新写入的通道号之后,将通道寄存器33清零;之后,根据所读取的通道号,获取该通道号对应硬件通道32的内部存储器中的冷热页访问信息和/或冷热页链表,根据冷热页访问信息和/或冷热页链表执行冷热页处理操作。其中,获取该通道号对应硬件通道32的内部存储器中的冷热页访问信息和/或冷热页链表参见上述实施例,在此不再赘述。110.在另一可选实施例中,信息处理模块31每次扫描完成一个硬件通道32时,将该硬件通道32的通道号直接写入通道寄存器33中,并向cpu10触发硬件中断。cpu10在接收到硬件中断时,从通道寄存器33中读取信息处理模块31新写入的通道号,并在读取新写入的通道号之后,将通道寄存器33清零;之后,根据所读取的通道号,获取该通道号对应硬件通道32的内部存储器中的冷热页访问信息和/或冷热页链表,根据冷热页访问信息和/或冷热页链表执行冷热页处理操作。111.在又一可选实施例中,通道寄存器33中包括至少一个比特位,一个比特位对应一条硬件通道32,且比特位可被置位或清零。基于此,信息处理模块31每次扫描完成一个硬件通道32时,将通道寄存器33中与该硬件通道32对应的比特位置位,例如置为1。相应地,cpu10可以定时轮询通道寄存器33,以便获取通道寄存器33中被置位的比特位;当轮询到被置位的比特位时,读取被置位的比特位对应的通道号,并在读取新写入的通道号之后,将该比特位清零;之后,根据所读取的通道号,获取该通道号对应硬件通道32的内部存储器中的冷热页访问信息和/或冷热页链表,根据冷热页访问信息和/或冷热页链表执行冷热页处理操作。112.在又一可选实施例中,通道寄存器33中包括至少一个比特位,一个比特位对应一条硬件通道32,且比特位可被置位或清零。信息处理模块31在每次完成扫描后,将通道寄存器33中对应完成扫描的硬件通道32的比特位置位,并向cpu10触发硬件中断,以使cpu10在接收到硬件中断的情况下从通道寄存器33中获取被置位的比特位对应的硬件通道32的通道号。cpu10获取到通道号后,将被置位的比特位重新清零,并根据所读取的通道号,获取该通道号对应硬件通道32的内部存储器中的冷热页访问信息和/或冷热页链表,根据冷热页访问信息和/或冷热页链表执行冷热页处理操作。113.进一步可选地,本技术实施例中的通道寄存器33支持原子化的通道号读取和比特位清零操作,具体是指在信息处理模块31需要将通道寄存器33中对应完成扫描的硬件通道32的比特位置位时,若此时cpu10正在访问该通道寄存器33,例如正在从通道寄存器33中读取通道号或者在读取通道号之后正在执行相应比特位的清零操作,此时信息处理模块31需要等待cpu10完成对通道寄存器33的访问操作,然后再将对应比特位置位,以确保通道号的读取和比特位清零操作的原子化。114.在此说明,本技术实施例并不限定冷热页管理加速设备30的产品实现形态,可以是具有上述各实施例描述的硬件结构的各种产品实现形态,例如可以是实现为芯片、设备、模组或硬件模块等。115.进一步,在本技术实施例中,并不限定信息处理模块31在进行页表扫描、冷热页访问信息统计以及冷热页链表维护时的实现方式,信息处理模块31可以采用纯硬件方式实现,也可以采用纯软件方式实现,还可以采用软硬结合的方式来实现。其中,软硬结合的方式是指信息处理模块31中既包括基于可编程器件实现的硬件模块,也包括处理单元,由处理单元执行内置程序代码并配合基于可编程器件实现的硬件模块实现页表扫描、冷热页访问信息的统计以及冷热页链表的维护。纯软件的方式是指全部由处理单元执行内置程序代码实现页表扫描、冷热页访问信息的统计以及冷热页链表的维护;纯硬件的方式是指全部由基于可编程器件实现的硬件模块实现页表扫描、冷热页访问信息的统计以及冷热页链表的维护。其中,可编程器件可以是但不限于:复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld)、现场可编程逻辑门阵列(fieldprogrammablegatearray,fpga)等。在采用纯软件或软硬结合方式时,能够执行程序代码的处理单元可以但不限于:cpu、图形处理器。图形处理器(graphicsprocessingunit,gpu)或arm处理器、自研的云计算芯片等。116.其中,在信息处理模块31采用纯硬件方式实现的情况下,冷热页管理加速设备可以实现为一种纯硬件的芯片、设备、模组或硬件模块等;相应地,在信息处理模块31采用纯软件或软硬结合方式实现的情况下,冷热页管理加速设备实现为一种软硬结合的芯片、设备、模组或硬件模块等。在本技术下述实施例中,将示例性地给出一种纯硬件实现的信息处理模块31和一种基于软硬结合方式实现的信息处理模块31。117.图6a为本技术实施例提供的一种纯硬件实现的信息处理模块的结构示意图。如图6a所示,该信息处理模块至少包括:基于可编程器件实现的硬件扫描模块311和硬件链表模块312。118.其中,硬件扫描模块311,与各硬件通道32以及物理内存20互联,用于针对被配置服务于一个虚拟地址空间的任一硬件通道,根据任一硬件通道中的第一寄存器中存储的页表的基地址,对物理内存中的对应页表进行周期性扫描,得到虚拟地址空间对应的冷热页访问信息,并写入任一硬件通道中的内部存储介质中。119.硬件链表模块312,与硬件扫描模块311以及各硬件通道32互联,用于根据任一硬件通道中的内部存储介质中的冷热页访问信息,生成虚拟地址空间对应的冷热页链表,并写入任一硬件通道中的内部存储介质中,以使cpu根据任一硬件通道中的内部存储介质中的冷热页访问信息和/或冷热页链表执行冷热页处理操作。120.进一步,如图6a所示,硬件链表模块312包括:基于可编程器件实现的读取单元3121、调整单元3122和写入单元3123。其中,读取单元3121,与硬件扫描模块311和各硬件通道32互联,用于响应硬件扫描模块311在每次扫描完成后发出的读取触发操作,从任一硬件通道中的内部存储介质中读取当前冷热页访问信息和当前冷热页链表,并提供给调整单元3122。调整单元3122,与读取单元3121互联,用于根据当前冷热页访问信息调整当前冷热页链表中各页面节点之间的顺序,以得到调整后的冷热页链表,并提供给写入单元3123。其中,每个页面节点对应虚拟地址空间中的一个页面。写入单元3123,与调整单元3122以及各硬件通道32互联,用于将调整后的冷热页链表写入所述任一硬件通道中的内部存储介质中,以替换调整前的冷热页链表。121.在本实施例中,调整单元3122具体用于:从当前冷热页访问信息中解析出至少一个目标页面的地址信息,目标页面是虚拟地址空间中在当前扫描周期内被访问的页面;根据至少一个目标页面的地址信息,依次将至少一个目标页面对应的页面节点移动到当前冷热页链表的头部,以得到调整后的冷热页链表。122.图6b为本技术实施例提供的一种软硬结合实现的信息处理模块的结构示意图。如图6b所示,该信息处理模块包括:处理单元313和基于可编程器件实现的硬件扫描模块311,处理单元313内置有链表维护程序。123.硬件扫描模块311,与各硬件通道32以及物理内存20互联,用于针对被配置服务于一个虚拟地址空间的任一硬件通道,根据任一硬件通道中的第一寄存器中存储的页表的基地址,对物理内存中的对应页表进行周期性扫描,得到所述虚拟地址空间对应的冷热页访问信息,并写入任一硬件通道中的内部存储介质中;124.处理单元313,与硬件扫描模块311以及各硬件通道32互联,用于执行内置的链表维护程序,以用于:根据任一硬件通道中的内部存储介质中的冷热页访问信息,生成虚拟地址空间对应的冷热页链表,并写入任一硬件通道中的内部存储介质中,以使cpu根据任一硬件通道中的内部存储介质中的冷热页访问信息和/或冷热页链表执行冷热页处理操作。125.在一可选实施例中,处理单元313在生成虚拟地址空间对应的冷热页链表时,具体用于:响应硬件扫描模块311在每次扫描完成后发出的读取触发操作,从任一硬件通道中的内部存储介质中读取当前冷热页访问信息和当前冷热页链表;根据当前冷热页访问信息,重新计算当前冷热页链表中各页面节点的访问热度值,每个页面节点对应虚拟地址空间中的一个页面;根据各页面节点的访问热度值,调整当前冷热页链表中各页面节点之间的顺序,以得到调整后的冷热页链表,并写入任一硬件通道中的内部存储介质中,以替换调整前的冷热页链表。其中,根据各页面节点的访问热度值,调整当前冷热页链表中各页面节点之间的顺序,可以将访问热度值增加的页面节点向链表头部移动,将访问热度值降低的页面节点向链表尾部移动,最终得到页面节点按照访问热度值从链表头部到链表尾部依次降低的排序结果。126.在一可选实施例中,在每次扫描完成后,可以从当前冷热页访问信息解析出当前扫描周期内被访问的至少一个目标页面的地址信息;对于被访问的目标页面对应的页面节点,可以认为其具有最高的访问热度值。基于此,处理单元313在重新计算当前冷热页链表中各页面节点的访问热度值时,可以从当前冷热页访问信息解析出当前扫描周期内被访问的至少一个目标页面的地址信息,根据至少一个目标页面的地址信息,依次将至少一个目标页面移动到当前冷热页链表的头部,以得到调整后的冷热页链表。可选地,可以按照目标页面的地址信息由小到大的顺序,依次将至少一个目标页面对应的页面节点移动到当前冷热页链表的头部,以得到调整后的冷热页链表。127.在另一可选实施例中,冷热页链表中的各页面节点中除了存储对应页面的地址信息之外,还可以存储对应页面的访问信息,页面的访问信息包括访问者的信息、访问时间、访问次数、访问类型中的至少一种。其中,访问者的信息是指访问该页面的进程的信息,进程的信息包括但不限于:进程的标识和类型;访问时间是指该页面在指定时段内被访问的时间信息,访问次数是指该页面在指定时段内被访问的次数;访问类型是指该页面被访问的类型,例如读操作或写操作。基于此,处理单元313在重新计算当前冷热页链表中各页面节点的访问热度值时,具体用于:根据当前冷热页访问信息,结合各页面节点中记载的对应页面的访问信息,重新计算各页面节点在指定时段内的访问热度值。在该实施方式中,页面节点的访问热度值可以根据更加丰富的信息进行确定,不再单纯依赖页面是否被访问来确定,可以提高冷热页链表所维护的冷热页的精度,能够满足更加丰富的应用需求。举例说明:128.在一示例性实施例中,可以根据页面节点在最近时段内的最新访问次数,计算各页面节点在最近时段内的最新访问热度值。具体地,在每次扫描完成后,可以从内部存储介质中获取当前冷热页访问信息(即最新的冷热页访问信息),根据当前冷热页访问信息,确定在当前扫描周期内被访问的至少一个目标页面的地址信息和访问时间,根据至少一个目标页面的地址信息和访问时间更新对应页面节点中记录的访问信息,主要是指增加一个访问的访问时间;然后,根据各页面每次被访问时的访问时间,对访问时间位于最近时段内的访问次数进行累加,访问时间不再属于最近时段内的访问次数不再参与累加,从得到最新访问次数。其中,最近时段内的访问次数越多,页面节点的访问热度值越大。可选地,可以将访问次数直接作为访问热度值,也可以根据访问次数进行数值计算(例如乘以预设的权重系数),将数值计算的结果作为访问热度值。其中,最近时段可以是最近一小时、最近10分钟、最近半天、最近一天或最近一周等,对此不做限定。129.在一示例性实施例中,可以根据页面节点在最近时段内被指定类型的访问者访问的次数,计算各页面节点在最近时段内的最新访问热度值。具体地,在每次扫描完成后,可以从内部存储介质中获取当前冷热页访问信息(即最新的冷热页访问信息),根据当前冷热页访问信息,确定在当前扫描周期内被访问的至少一个目标页面的地址信息和访问者的信息,根据至少一个目标页面的地址信息和访问者的信息更新对应页面节点中记录的访问信息,主要是指增加一次访问的访问时间和访问者的信息;然后,根据各页面每次被访问时的访问时间和访问者的信息,对访问时间位于最近时段内且是由指定类型的访问者发起的访问次数进行累加,访问时间不再属于最近时段内的访问次数以及不属于指定类型的访问者发起的访问次数均不参与累加,从得到最新访问次数。其中,最近时段内被指定类型的访问者访问的次数越多,页面节点的访问热度值越大。130.在一示例性实施例中,可以根据页面节点在最近时段内属于指定访问类型的访问次数,计算各页面节点在最近时段内的最新访问热度值。具体地,在每次扫描完成后,可以从内部存储介质中获取当前冷热页访问信息(即最新的冷热页访问信息),根据当前冷热页访问信息,确定在当前扫描周期内被访问的至少一个目标页面的地址信息和访问类型(例如读或写),根据至少一个目标页面的地址信息和访问类型更新对应页面节点中记录的访问信息,主要是指增加一次访问的访问时间和访问类型;然后,根据各页面每次被访问时的访问时间和访问类型,对访问时间位于最近时段内且属于指定访问类型的访问次数进行累加,访问时间不再属于最近时段内的访问次数以及不属于指定访问类型的访问次数均不参与累加,从得到最新访问次数。其中,最近时段内属于指定访问类型的访问次数越多,页面节点的访问热度值越大。131.在图6b所示实施例中,采用软件方式进行冷热页链表的更新和维护,其灵活性更高,能够对冷热页进行更加细粒度和更加多样化的更新和维护,尤其适用于相对复杂的介质交换场景。例如,对于包含多个层级的存储系统,采用软件方式进行冷热页链表的更新和维护可以按照应用需求提供更加细粒度的访问热度值,而且可以针对不同层级的存储介质采用不同方式计算访问热度值,满足不同层级存储介质之间的交换需求。例如,对于最高层级的存储介质,可以使用更细粒度的访问热度值(即访问热度值的计算方式较为复杂,同时考虑多种因素),以便于降低页面的交换频率,避免页面被频繁换入换出;对于中间层级或较低层级的存储介质,其页面访问频率相对较低,可以使用相对较粗粒度的访问热度值(即访问热度值的计算方式可以相对简单,可以重点考虑某一因素),减少页面交换消耗的计算资源。132.进一步可选地,在图5a所示冷热页管理加速设备的结构上,如图6a和图6b所示,该信息处理模块还包括:基于可编程器件实现的数据传输模块314。其中,硬件扫描模块311在每次扫描完成后除了向读取单元发出读取触发操作之外,还会向cpu触发硬件中断,此时,cpu根据硬件中断从通道寄存器33中读取扫描完成的通道号,将第一内存地址和/第二内存地址写入该通道号对应硬件通道中的第三寄存器和/或第四寄存器中,以触发数据传输模块进行数据传输。数据传输模块314与各硬件通道32、物理内存20以及通道寄存器33互联,一方面从第三寄存器和/或第四寄存器中读取第一内存地址和/第二内存地址,另一方面从对应硬件通道的内部存储介质中读取冷热页访问信息和/或冷热页链表,根据第一内存地址和/第二内存地址,采用dma方式将冷热页访问信息和/或冷热页链表写入物理内存中,以供cpu从物理内存中直接读取冷热页访问信息和/或冷热页链表。133.无论本技术实施例提供的冷热页管理加速设备采用何种实现方式,也无论采用哪种方式进行冷热页访问信息的统计和冷热页链表的更新与维护,在本技术实施例中,采用专用的冷热页管理加速设备代替cpu进行页表扫描、冷热页访问信息的统计和冷热页链表的更新与维护,不仅可以降低cpu资源的开销,而且借助于硬件优势,还可以提高页表扫描的频率,进而提高冷热页访问信息和冷热页链表的精度,提高介质交换的合理性,有利于避免虚拟页面被频繁换入换出,进而提高物理内存空间的利用率和io性能。134.在本技术上述实施例中对冷热页管理加速设备的实现结构以及包含冷热页管理加速设备的电子设备的实现结构进行了描述,在电子设备中,冷热页管理加速设备通过互联总线互联于cpu和物理内存之间。可选地,在图1中,以本技术实施例提供的冷热页管理加速设备作为独立的芯片、硬件模块或模组,互联于cpu和物理内存之间为例进行图示,但并不限于此。135.本技术实施例的提供的冷热页管理加速设备除了作为的芯片、硬件模块或模组实现之外,也可以作为mmu内部的芯片或模块,内嵌到mmu中实现。其中,mmu是cpu的一个单独模块,是负责将cpu希望访问的虚拟地址转换为实际物理地址的组件。在本技术一些可选实施例中,提供一种新型的mmu,该mmu内部包含本技术实施例提供的冷热页管理加速设备,该新型的mmu具有传统mmu的各种功能,除此之外,还可以通过冷热页管理加速设备为物理内存对应的至少一个虚拟地址空间提供冷热页管理服务,关于冷热页管理加速设备的结构以及提供冷热页管理服务的详细过程可参见前述实施例,在此不再赘述。基于此,本技术实施例还提供一种新型的处理器,该处理器包含本技术实施例提供的新型的mmu。进一步,本技术实施例还提供一种新型的电子设备,该电子设备包含本技术实施例提供的新型的处理器,如图6c所示。136.在上述图3a、图4a、图5a以及图6a和图6b所示的实施例中,以信息处理模块31独立于各条硬件通道32,且各条硬件通道32共享一个信息处理模块31为例对冷热页管理加速设备的实现结构进行了图示,但冷热页管理加速设备的实现结构并不限于此。例如,在图6d所示实施例中,信息处理模块31的数量与硬件通道32的数量相同,每条硬件通道32除了包含前述实施例中提到的各寄存器和内部存储介质之外,还包含一个信息处理模块31,即每条硬件通道32具有各自专属的信息处理模块31。这样,每条硬件通道32被配置服务于虚拟地址空间的情况下,具体可由该硬件通道32中的信息处理模块31针对该硬件通道32进行页表扫描、冷热页访问信息的统计以及冷热页链表的更新与维护。137.具体地,对任一条硬件通道32,在其被配置服务于虚拟地址空间的情况下,该硬件通道32中的信息处理模块31一方面可以根据该硬件通道32中的第一寄存器321中存储的页表的基地址,对物理内存20中的对应页表进行周期性扫描,以周期性地得到该硬件通道32所服务的虚拟地址空间对应的冷热页访问信息,并将该冷热页访问信息写入该硬件通道32中的内部存储介质322中;另一方面可以根据得到的冷热页访问信息,生成该虚拟地址空间对应的冷热页链表,并写入该硬件通道32中的内部存储介质322中;以及在每次扫描完成之后,通过通道寄存器33向cpu10提供扫描完成的通道号,以使cpu10根据扫描完成的通道号对应硬件通道32中的内部存储介质322中的冷热页访问信息执行冷热页处理操作。上述相关操作的详细实施方式与前述实施例基本相同,区别仅在于执行上述操作的信息处理模块不再是共享的,而是每个硬件通道专属的,故在此不再赘述。138.在此说明,在图6d所示实施例中,第一寄存器321、内部存储介质322以及信息处理模块31是每条硬件通道32的必要组件,而第二寄存器323、第三寄存器324以及第四寄存器325为可选组件。在图6d中,以每条硬件通道32同时包含例第一寄存器321、内部存储介质322、信息处理模块31、第二寄存器323、第三寄存器324以及第四寄存器325为例图示,但并不限于此。如图6d所示,在每条硬件通道内部,信息处理模块31分别与第一寄存器321、内部存储介质322、第二寄存器323、第三寄存器324以及第四寄存器325互联;另外,每条硬件通道32内的信息处理模块31分别与通道寄存器33互联,用于通过通道寄存器33向cpu10提供扫描完成的通道号。每条硬件通道32内的信息处理模块31分别与物理内存20互联,一方面用于对物理内存中的页表进行扫描,另一方面可以把冷热页访问信息和/或冷热页链表写入物理内存20中。139.在此说明,在各条硬件通道32包含各自专属的信息处理模块31的情况下,各信息处理模块31仍可以采用图6a或图6b所示的实现结构,各模块及其功能均与前述实施例相同,区别仅在于各模块与其它组件之间的连接关系会有变化,例如硬件扫描模块不需要与各硬件通道进行互联,只需互联其所属硬件通道中的各寄存器和内部存储器即可,故在此不再赘述。140.同理,在上述各实施例中,以通道寄存器33被各条硬件通道32共享为例进行图示,但并不限于此。例如,每条硬件通道也可以具有各自专属的通道寄存器33,各专属通道寄存器33的作用与共享通道寄存器33的作用相同。根据前述实施例提供的各种冷热页管理加速设备的实现结构,本领域技术人员可以毫无疑义的推知各硬件通道包含各自专属的通道寄存器33的实现结构以及工作原理,故在此不再赘述。141.图7a为本技术实施例提供的一种冷热页管理方法的流程示意图。图7a所示的冷热页管理方法可应用于互联于电子设备的处理器和物理内存之间的冷热页管理加速设备,该冷热页管理加速设备包括至少一条硬件通道和通道寄存器,至少部分硬件通道包括第一寄存器和内部存储介质,关于冷热页管理加速设备的详细实现结构可参见前述实施例中的描述,在此不再赘述。如图7a所示,该方法包括:142.71a、针对被配置服务于虚拟地址空间的任一硬件通道,根据任一硬件通道中的第一寄存器中存储的页表的基地址,对物理内存中的对应页表进行周期性扫描,得到虚拟地址空间对应的冷热页访问信息;143.72a、将虚拟地址空间对应的冷热页访问信息,写入任一硬件通道中的内部存储介质中;144.73a、在每次扫描完成之后,通过通道寄存器向处理器提供扫描完成的通道号,以使处理器根据扫描完成的通道号对应硬件通道中的内部存储介质中的冷热页访问信息执行冷热页处理操作。145.在一可选实施例中,该方法还包括:根据所述任一硬件通道中的内部存储介质中的冷热页访问信息,生成所述虚拟地址空间对应的冷热页链表;将所述虚拟地址空间对应的冷热页链表写入所述任一硬件通道中的内部存储介质中,以使所述处理器根据所述任一硬件通道中的内部存储介质中的冷热页访问信息和/或冷热页链表执行冷热页处理操作。146.在一可选实施例中,上述根据所述任一硬件通道中的内部存储介质中的冷热页访问信息,生成所述虚拟地址空间对应的冷热页链表,包括:147.响应扫描完成后的读取触发操作,从所述任一硬件通道中的内部存储介质中读取当前冷热页访问信息和当前冷热页链表;148.根据当前冷热页访问信息调整当前冷热页链表中各页面节点之间的顺序,以得到调整后的冷热页链表,每个页面节点对应虚拟地址空间中的一个页面。149.在一可选实施例中,上述根据当前冷热页访问信息调整当前冷热页链表中各页面节点之间的顺序,以得到调整后的冷热页链表,包括:150.从当前冷热页访问信息中解析出至少一个目标页面的地址信息,所述目标页面是所述虚拟地址空间中在当前扫描周期内被访问的页面;根据所述至少一个目标页面的地址信息,依次将所述至少一个目标页面对应的页面节点移动到当前冷热页链表的头部,以得到调整后的冷热页链表;151.或者152.根据当前冷热页访问信息,重新计算当前冷热页链表中各页面节点的访问热度值;根据所述各页面节点的访问热度值,调整当前冷热页链表中各页面节点之间的顺序,以得到调整后的冷热页链表。153.在一可选实施例中,上述根据当前冷热页访问信息,重新计算当前冷热页链表中各页面节点的访问热度值,包括:根据当前冷热页访问信息,结合各页面节点中记载的对应页面的访问信息,重新计算各页面节点在指定时段内的访问热度值;所述页面的访问信息包括访问者的信息、访问时间、访问次数和访问类型中的至少一种。154.在一可选实施例中,上述根据所述任一硬件通道中的第一寄存器中存储的页表的基地址,对所述物理内存中的对应页表进行周期性扫描,得到所述虚拟地址空间对应的冷热页访问信息,包括:从所述任一硬件通道中的第二寄存器中读取扫描周期,所述扫描周期是所述任一硬件通道所服务的虚拟地址空间对应的扫描周期;根据所述任一硬件通道中的第一寄存器中存储的页表的基地址,按照所述扫描周期对所述物理内存中的对应页表进行周期性扫描,得到所述虚拟地址空间对应的冷热页访问信息。155.在一可选实施例中,上述方法还包括:从所述扫描完成的通道号对应硬件通道中的第三寄存器和/或第四寄存器中读取第一内存地址和/或第二内存地址,所述第一内存地址和/或第二内存地址用于表征所述物理内存中用于存储冷热页访问信息和/或冷热页链表的内存地址;根据所述第一内存地址和/或所述第二内存地址,将所述硬件通道中的内部存储介质中的冷热页访问信息和/或冷热页链表写入所述物理内存中,以供所述处理器根据所述冷热页访问信息和/或冷热页链表执行冷热页处理操作。156.关于图7a所示实施例中各步骤的详细实施过程可参见前述实施例中的相关描述,在此不再赘述。157.图7b为本技术实施例提供的另一种冷热页管理方法的流程示意图。图7b所示冷热页管理方法应用于电子设备中的处理器,该处理器与冷热页管理加速设备互联,关于冷热页管理加速设备的实现结构可参见前述实施例,在此不再赘述。如图7b所示,本实施例的方法包括:158.71b、接收冷热页管理加速设备触发的硬件中断,该硬件中断是冷热页管理加速设备在针对其所包含的至少一条硬件通道中被配置服务于虚拟地址空间的任一硬件通道完成页表扫描后触发的;159.72b、从冷热页管理加速设备的通道寄存器中获取扫描完成的通道号,根据所述完成扫描的通道号,从所述任一硬件通道的内部存储介质中获取虚拟地址空间对应的冷热页访问信息和/或冷热页链表;160.73b、根据冷热页访问信息和/或冷热页链表执行冷热页处理操作。161.在一可选实施例中,上述根据所述完成扫描的通道号,从所述任一硬件通道的内部存储介质中获取所述虚拟地址空间对应的冷热页访问信息和/或冷热页链表,包括:162.根据所述完成扫描的通道号,向所述任一硬件通道中的第三寄存器和/或第四寄存器中写入第一内存地址和/或第二内存地址,以使冷热页管理加速设备将冷热页访问信息和/或冷热页链表写入电子设备的物理内存中;根据第一内存地址和/或第二内存地址,从物理内存中获取冷热页访问信息和/或冷热页链表。163.在一可选实施例中,本实施例的方法还包括:响应电子设备上任一应用程序的注册请求,为任一应用程序对应的虚拟地址空间分配为其提供冷热页管理服务的一条硬件通道,并获取该虚拟地址空间对应的页表的基地址和扫描周期,针对该虚拟地址空间分配第一内存地址和/或第二内存地址;以及响应针对分配的硬件通道的初始化操作,向所分配的硬件通道中的第一寄存器和第二寄存器中分别写入该虚拟地址空间的页表的基地址和扫描周期,并将第一内存地址和/或第二内存地址保存到所分配的硬件通道对应的数据结构中,以使处理器获取所分配的硬件通道的通道号后向第三寄存器和/或第四寄存器分别写入第一内存地址和/或第二内存地址,进而使得冷热页管理加速设备将冷热页访问信息和/或冷热页链表写入电子设备的物理内存中。164.关于图7b所示实施例中各步骤的详细实施过程可参见前述实施例中的相关描述,在此不再赘述。165.相应地,本技术实施例还提供一种存储有计算机程序的计算机可读存储介质,计算机程序被处理器执行时,致使处理器能够实现上述方法实施例中可由处理器或处理单元执行的各步骤。166.相应地,本技术实施例还提供一种计算机程序产品,包括计算机程序/指令,当计算机程序/指令被处理器执行时,致使处理器能够实现上述方法实施例中可由处理器或处理单元执行的各步骤。167.上述通信组件被配置为便于通信组件所在设备和其他设备之间有线或无线方式的通信。通信组件所在设备可以接入基于通信标准的无线网络,如wifi,2g、3g、4g/lte、5g等移动通信网络,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(radiofrequencyidentification,rfid)技术,红外数据协会(infrareddataassociation,irda)技术,超宽带(ultrawideband,uwb)技术,蓝牙(bluetooth,bt)技术和其他技术来实现。168.上述显示器包括屏幕,其屏幕可以包括液晶显示器(liquidcrystaldisplay,lcd)和触摸面板(touchpanel,tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。169.上述电源组件,为电源组件所在设备的各种组件提供电力。电源组件可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。170.上述音频组件,可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(microphone,mic),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。171.本领域内的技术人员应明白,本技术的实施例可提供为方法、系统、或计算机程序产品。因此,本技术可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本技术可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、只读光盘(compactdiscread-onlymemory,cd-rom)、光学存储器等)上实施的计算机程序产品的形式。172.本技术是参照根据本技术实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。173.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。174.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。175.在一个典型的配置中,计算设备包括一个或多个处理器(centralprocessingunit,cpu)、输入/输出接口、网络接口和内存。176.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(randomaccessmemory,ram)和/或非易失性内存等形式,如只读存储器(read-onlymemory,rom)或闪存(flashram)。内存是计算机可读介质的示例。177.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(phase-changerandomaccessmemory,pram)、静态随机存取存储器(staticrandom-accessmemory,sram)、动态随机存取存储器(dynamicrandomaccessmemory,dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(electricallyerasableprogrammablereadonlymemory,eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(digitalvideodisc,dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。178.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。179.以上仅为本技术的实施例而已,并不用于限制本技术。对于本领域技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本技术的权利要求范围之内。当前第1页12当前第1页12