CN113360243A - 设备处理方法、装置、电子设备及可读介质 - Google Patents

设备处理方法、装置、电子设备及可读介质 Download PDF

Info

Publication number
CN113360243A
CN113360243A CN202110287993.5A CN202110287993A CN113360243A CN 113360243 A CN113360243 A CN 113360243A CN 202110287993 A CN202110287993 A CN 202110287993A CN 113360243 A CN113360243 A CN 113360243A
Authority
CN
China
Prior art keywords
memory
size
external device
memory area
external
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110287993.5A
Other languages
English (en)
Other versions
CN113360243B (zh
Inventor
吕晨
朱琛
毛碧波
高翔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Loongson Technology Corp Ltd
Original Assignee
Loongson Technology Corp Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Loongson Technology Corp Ltd filed Critical Loongson Technology Corp Ltd
Priority to CN202110287993.5A priority Critical patent/CN113360243B/zh
Publication of CN113360243A publication Critical patent/CN113360243A/zh
Application granted granted Critical
Publication of CN113360243B publication Critical patent/CN113360243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • G06F12/0873Mapping of cache memory to specific storage devices or parts thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0877Cache access modes
    • G06F12/0882Page mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory management, e.g. access or allocation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明提供了一种设备处理方法、装置、电子设备及可读介质,该方法中,在接收到外接设备发送直通请求的情况下,获取外接设备的状态信息,在状态信息指示外接设备为活跃设备的情况下,为外接设备分配单页大小为第一大小的第一内存区域,以在第一缓冲区中设置第一映射项,在状态信息指示外接设备不为活跃设备的情况下,为外接设备分配单页大小为第二大小的第二内存区域,以在第二缓冲区中设置第二映射项。其中,第一大小大于第二大小。这样,一定程度上可以缩小后续查找第一映射项时的查找范围,提高查找效率,进一步提高后续的转译效率,从而提高内存访问效率。

Description

设备处理方法、装置、电子设备及可读介质
技术领域
本发明实施例涉及电子设备技术领域,尤其涉及一种设备处理方法、装置、电子设备及可读介质。
背景技术
目前,为了方便外接设备访问电子设备中虚拟机的内存,需要将外接设备直通给电子设备中的虚拟机。
现有方式在进行设备直通时,往往是直接为外接设备分配默认页大小的内存区域,以便于外接设备可以直接访问该内存区域。由于外接设备访问内存区域时,电子设备需要将外接设备所使用的第一地址转译为对应的内存区域中的地址。为了确保后续的访问时的效率,亟需一种能够确保转译效率的设备处理方法。
发明内容
本发明实施例提供一种设备处理方法、装置、电子设备及可读介质,以提高外接设备直接访问内存时的效率。
第一方面,提供了一种设备处理方法,应用于连接有外接设备的电子设备,所述方法包括:
响应于所述外接设备发送的直通请求,获取所述外接设备的状态信息;
若所述状态信息指示所述外接设备为活跃设备,为所述外接设备分配单页大小为第一大小的第一内存区域,以在第一缓冲区中设置第一映射项;
若所述状态信息指示所述外接设备不为活跃设备,为所述外接设备分配单页大小为第二大小的第二内存区域,以在第二缓冲区中设置第二映射项;
其中,所述第一映射项用于表征所述外接设备使用的第一地址与第一物理地址的映射关系,所述第一物理地址为第一大小的内存页对应的真实物理地址;所述第二映射项用于表征所述第一地址与第二物理地址的映射关系,所述第二物理地址为第二大小的内存页对应的真实物理地址;所述第一大小大于所述第二大小。
可选的,获取持续一段时间内所述外接设备执行指定操作的历史执行数量和/或当前所持有的内存区域的区域大小,以作为所述状态信息;
相应地,所述方法还包括:
若所述历史执行数量大于第一预设阈值和/或所述区域大小大于第二预设阈值,则确定所述状态信息指示所述外接设备为活跃设备;否则,指示所述外界设备不为活跃设备。
可选的,所述获取所述外接设备的状态信息,包括:
获取所述外接设备的设备类型,以作为所述状态信息;
相应地,所述方法还包括:
若所述设备类型为第一设备类型,则确定所述状态信息指示所述外接设备为活跃设备;
若所述设备类型为第二设备类型,则确定所述状态信息指示所述外接设备不为活跃设备;
其中,所述第一设备类型的设备传输速度大于所述第二设备类型的设备传输速度。
可选的,所述方法还包括:
确定所述外接设备的内存使用行为模式;
在所述内存使用行为模式为指定模式的情况下,执行所述确定所述状态信息指示所述外接设备为活跃设备的操作;所述指定模式的外接设备仅在与所述电子设备解除连接时,释放所分配的内存区域。
可选的,所述方法还包括:
在所述内存使用行为模式不为所述指定模式的情况下,为所述外接设备分配所述单页大小为第二大小的第二内存区域,以在所述第二缓冲区中设置所述第二映射项。
可选的,所述为所述外接设备分配单页大小为第一大小的第一内存区域之后,所述方法还包括:若接收到内存释放指令,则在预设时长内未接收到新的直通请求的情况下,释放所述第一内存区域并清除所述第一映射项;
所述为所述外接设备分配单页大小为第二大小的第二内存区域之后,所述方法还包括:若接收到内存释放指令,则直接释放所述第二内存区域并清除所述第二映射项。
可选的,所述方法还包括:
为所述第一内存区域设置第一标签,以及,为所述第二内存区域设置第二标签;
在所述外接设备分配的内存区域设置有第一标签的情况下,以第一存储器实现所述第一预设缓冲区;
在所述外接设备分配的内存区域设置有第二标签的情况下,以第二存储器实现所述第二预设缓冲区;
所述第一存储器的读写速度大于所述第二存储器的读写速度。
第二方面,提供了一种设备处理装置,应用于连接有外接设备的电子设备,所述装置包括:
获取模块,用于响应于所述外接设备发送的直通请求,获取所述外接设备的状态信息;
第一处理模块,用于若所述状态信息指示所述外接设备为活跃设备,为所述外接设备分配单页大小为第一大小的第一内存区域,以在第一缓冲区中设置第一映射项;
第二处理模块,用于若所述状态信息指示所述外接设备不为活跃设备,为所述外接设备分配单页大小为第二大小的第二内存区域,以在第二缓冲区中设置第二映射项;
其中,所述第一映射项用于表征所述外接设备使用的第一地址与第一物理地址的映射关系,所述第一物理地址为第一大小的内存页对应的真实物理地址;所述第二映射项用于表征所述第一地址与第二物理地址的映射关系,所述第二物理地址为第二大小的内存页对应的真实物理地址;所述第一大小大于所述第二大小。
可选的,所述获取模块,具体用于:
获取持续一段时间内所述外接设备执行指定操作的历史执行数量和/或当前所持有的内存区域的区域大小,以作为所述状态信息;
相应地,所述装置还包括:
第一确定模块,用于若所述历史执行数量大于第一预设阈值和/或所述区域大小大于第二预设阈值,则确定所述状态信息指示所述外接设备为活跃设备;否则,指示所述外界设备不为活跃设备。
可选的,所述获取模块,具体用于:
获取所述外接设备的设备类型,以作为所述状态信息;
相应地,所述装置还包括:
第二确定模块,用于若所述设备类型为第一设备类型,则确定所述状态信息指示所述外接设备为活跃设备;若所述设备类型为第二设备类型,则定所述状态信息指示所述外接设备不为活跃设备;
其中,所述第一设备类型的设备传输速度大于所述第二设备类型的设备传输速度。
可选的,所述装置还包括:
第三确定模块,用于确定所述外接设备的内存使用行为模式;
执行模块,用于在所述内存使用行为模式为指定模式的情况下,执行所述确定所述状态信息指示所述外接设备为活跃设备的操作;所述指定模式的外接设备仅在与所述电子设备解除连接时,释放所分配的内存区域。
可选的,所述装置还包括:
第四确定模块,用于在所述内存使用行为模式不为所述指定模式的情况下,为所述外接设备分配所述单页大小为第二大小的第二内存区域,以在所述第二缓冲区中设置所述第二映射项。
可选的,所述装置还包括:第一释放模块,用于在为所述外接设备分配单页大小为第一大小的第一内存区域之后,若接收到内存释放指令,则在预设时长内未接收到新的直通请求的情况下,释放所述第一内存区域并清除所述第一映射项;
第二释放模块,用于在为所述外接设备分配单页大小为第二大小的第二内存区域之后,若接收到内存释放指令,则直接释放所述第二内存区域并清除所述第二映射项。
可选的,所述装置还包括:
设置模块,用于为所述第一内存区域设置第一标签,以及,为所述第二内存区域设置第二标签;
在所述外接设备分配的内存区域设置有第一标签的情况下,以第一存储器实现所述第一预设缓冲区;
在所述外接设备分配的内存区域设置有第二标签的情况下,以第二存储器实现所述第二预设缓冲区;
所述第一存储器的读写速度大于所述第二存储器的读写速度。
第三方面,提供了一种电子设备,包括:
一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行所述设备处理方法。
第四方面,提供了一个或多个机器可读介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行所述设备处理方法。
本发明实施例中,在接收到外接设备发送直通请求的情况下,会先获取外接设备的状态信息,在状态信息指示外接设备为活跃设备的情况下,为外接设备分配单页大小为第一大小的第一内存区域,以在第一缓冲区中设置第一映射项,在状态信息指示外接设备不为活跃设备的情况下,为外接设备分配单页大小为第二大小的第二内存区域,以在第二缓冲区中设置第二映射项。其中,第一大小大于第二大小。相较于在进行设备直通时,直接为所有外接设备均分配最小页大小的内存区域,本申请中通过识别外接设备的活跃状态,为活跃设备分配采用更大的页大小的内存区域,即,为活跃设备采用大页映射。这样,可以使得一个第一映射项能够指示更大范围的内存空间,进而可以以更少数量的第一映射项覆盖第一内存区域,由于第一映射项的数量更少,进而一定程度上可以缩小后续查找第一映射项时的查找范围,这样,通过查找映射项即可较为快速的查找到对应的内存区域中的地址,提高查找对应的内存区域中地址的查找效率。由于查找效率变高,因此可以进一步提高后续的转译效率,从而提高内存访问效率。
同时,由于缓冲区可容纳项数有限,因此,第一映射项的数量更少,一定程度上可以降低由于第一缓冲区中的表项数过多导致缓冲区被刷新的次数,进而可以进一步提高后续转译时,从缓冲区中查找到对应的映射项的概率,进而确保转译效率。且本发明实施例仅对活跃设备采用大页映射,一定程度可以在提高效率的同时,避免所需成本过大的问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例提供的一种设备处理方法的步骤流程图;
图2是本发明实施例提供的一种处理流程示意图;
图3是本发明实施例提供的一种设备处理装置的结构框图。
具体实施方式
下面将参照附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
图1是本发明实施例提供的一种设备处理方法的步骤流程图,该方法可以应用于连接有外接设备的电子设备,如图1所示,该方法可以包括:
步骤101、响应于所述外接设备发送的直通请求,获取所述外接设备的状态信息。
本发明实施例中,电子设备中可以安装有虚拟机,连接的外接设备可以被该虚拟机所识别。外接设备可以是与电子设备有线连接或无线连接的输出/输出(I/O)设备。示例的,外接设备可以是基于通用串行总线(Universal Serial Bus,USB)与电子设备连接的设备,例如,打印机,键盘,移动硬盘,网卡等等。进一步地,直通请求可以是用于请求在该外接设备与虚拟机之间建立设备直通。外接设备的状态信息可以用于表征该外接设备是否活跃。其中,设备越活跃,访问内存的需求,对内存中内存数据的操作可以越频繁。
步骤102、若所述状态信息指示所述外接设备为活跃设备,为所述外接设备分配单页大小为第一大小的第一内存区域,以在第一缓冲区中设置第一映射项;所述第一映射项用于表征所述外接设备使用的第一地址与第一物理地址的映射关系,所述第一物理地址为第一大小的内存页对应的真实物理地址。
本发明实施例中,可以根据状态信息进行判断,以确定外接设备是否为活跃设备。如果该外接设备是活跃设备,则可以为该外接设备分配单页大小为第一大小的第一内存区域,以在第一缓冲区中设置第一映射项。
进一步地,第一内存区域的整体大小可以基于外接设备发送的直通请求确定,或者,也可以是直接以默认大小作为第一内存区域的整体大小。内存区域一般可以被划分为内存页,由内存页组成。单页大小可以指的是单个内存页的大小,对于相同大小的内存区域,所采用的单页大小越大,该内存区域对应的内存页的数量越少。因此,本步骤中分配单页大小为较大的第一大小的第一内存区域,可以使得内存页的数量更少。进一步地,由于一个第一映射项表征一个第一地址与一个内存页对应的第一物理地址的映射关系,因此,可以相应使得最终构建的第一映射项数量较少。其中,第一物理地址可以是该内存页对应的地址范围中地址组成的地址集合。示例的,第一物理地址本质上可以为主机物理地址(HostPhysical Address,HPA)。第一地址可以是外接设备发起访问请求时会使用的输入输出虚拟地址(Input Output Virtual Address,IOVA)。示例的,第一地址可以是外接设备的总线域对应地址,每个外接设备接入电子设备之后,电子设备可以为外接设备分配一块总线域以供使用。总线域中包含多个第一地址,不同第一地址可以对应同一第一物理地址,也可以对应不同第一物理地址。
步骤103、若所述状态信息指示所述外接设备不为活跃设备,为所述外接设备分配单页大小为第二大小的第二内存区域,以在第二缓冲区中设置第二映射项;所述第二映射项用于表征所述第一地址与第二物理地址的映射关系,所述第二物理地址为第二大小的内存页对应的真实物理地址;所述第一大小大于所述第二大小。
本发明实施例中,如果基于状态信息判断出该外接设备是非活跃设备,则可以为该外接设备分配单页大小为第二大小的第二内存区域,以在第二缓冲区中设置第二映射项。其中,第二大小可以为小于第一大小的数值,第二大小可以为默认的页大小,例如,为16千字节(KB),第一大小可以为32兆字节(MB)。进一步地,第二内存区域的整体大小可以基于外接设备发送的直通请求确定,或者,也可以是直接以默认大小作为第二内存区域的整体大小。第二物理地址可以是该第二内存区域中内存页对应的地址范围中地址组成的地址集合。示例的,第二物理地址本质上可以为HPA。
本发明实施例中,在接收到外接设备发送直通请求的情况下,会先获取外接设备的状态信息,在状态信息指示外接设备为活跃设备的情况下,为外接设备分配单页大小为第一大小的第一内存区域,以在第一缓冲区中设置第一映射项,在状态信息指示外接设备不为活跃设备的情况下,为外接设备分配单页大小为第二大小的第二内存区域,以在第二缓冲区中设置第二映射项。其中,第一大小大于第二大小。相较于在进行设备直通时,直接为所有外接设备均分配最小页大小的内存区域,本申请中通过识别外接设备的活跃状态,为活跃设备分配采用更大的页大小的内存区域,即,为活跃设备采用大页映射。这样,可以使得一个第一映射项能够指示更大范围的内存空间,进而可以以更少数量的第一映射项覆盖第一内存区域,由于第一映射项的数量更少,进而一定程度上可以缩小后续查找第一映射项时的查找范围,这样,通过查找映射项即可较为快速的查找到对应的内存区域中的地址,提高查找对应的内存区域中地址的查找效率。由于查找效率变高,因此可以进一步提高后续的转译效率,从而提高内存访问效率。
同时,由于缓冲区可容纳项数有限,因此,第一映射项的数量更少,一定程度上可以降低由于第一缓冲区中的表项数过多导致缓冲区被刷新的次数,进而可以进一步提高后续转译时,从缓冲区中查找到对应的映射项的概率,进而确保转译效率。且本发明实施例仅对活跃设备采用大页映射,一定程度可以在提高效率的同时,避免所需成本过大的问题。
可选的,本发明实施例中的第一缓冲区以及第二缓冲区本质可以为输入输出转译后备缓冲区(Input Output Translation Lookaside Buffer,IOTLB)。其中,第一缓冲区以及第二缓冲区可以依托存储器实现。在具体实施时,
两者可以采用相同的硬件实现,也可以采用不同的硬件实现。示例的,可以为第一内存区域设置第一标签。其中,第一标签的具体内存可以根据实际需求设置,示例的,第一标签可以为“tag0”。以及,为第二内存区域设置第二标签。其中,第二标签的具体内存可以根据实际需求设置,示例的,第二标签可以为“tag1”。相应地,在外接设备分配的内存区域设置有第一标签的情况下,以第一存储器实现第一预设缓冲区;在外接设备分配的内存区域设置有第二标签的情况下,以第二存储器实现第二预设缓冲区。即,第一预设缓冲区可以基于第一存储器实现,第二预设缓冲区可以基于第二存储器实现。其中,第一存储器的读写速度大于第二存储器的读写速度。进一步地,在设置第一标签/第二标签时,可以在内存区域的设备页表的页表项中设置标签。其中,设备页表里的每个页表项可以用于记录该外接设备使用的内存区域的每个页的虚实地址转换的关系。这种实现方式中,第一缓冲区可以表示为VIOTLB,第二缓冲区可以表示为FIOTLB,VIOTLB同一时间可以保存不同页大小的项,FIOTLB只能保存固定页大小的项。需要说明的是,映射项可以是在将该第一地址映射为第一物理地址/第二物理地址,并使用第一物理地址/第二物理地址访问之后,设置在缓冲区中的。也可以是电子设备基于预设的映射算法,确定出每个第一地址/第二地址对应的第一物理地址/第二物理地址之后,设置在缓冲区中的。
进一步地,第一存储器可以采用内容可寻址存储器实现,这样,可以使得时序快,进而使得读写速度更快。第二存储器可以采用缓冲(cache)结构实现,这样,可以在读写速度较慢的同时,使得第二缓冲区的容量较为大,尽可能满足更大的存储需求。
由于读写速度更快的第一存储器的实现成本更大,而活跃设备访问内存的频率更高。因此,本发明实施例中,以读写速度更大的第一存储器实现第一缓冲区,可以在避免硬件实现成本过大的同时,提高后续转译环节在该第一缓冲区中查找对应映射项的速度,进而一定程度上可以提高转译的整体效率。
可选的,在为外接设备分配第一内存区域的情况下,即,外接设备为活跃设备的情况下,本发明实施例中还可以执行以下操作:步骤S21、若接收到第一内存释放指令,则在预设时长内未接收到新的直通请求的情况下,释放所述内存区域并清除所述第一映射项。进一步地,在为外接设备分配第二内存区域的情况下,即,外接设备不为活跃设备的情况下,本发明实施例中还可以执行以下操作:步骤S31、若接收到内存释放指令,则直接释放所述第二内存区域并清除所述第二映射项。
具体的,内存释放指令可以是外接设备发送的,也可以是电子设备内部触发的,例如,当解除设备直通,或者释放内存区域(例如,data buffer)的情况下,可以触发生成内存释放指令。相应地,在外接设备为活跃设备的情况下,外接设备有较大可能在后续需要访问虚拟机的内存,即,还有较大可能需要建立设备直通。因此,本发明实施例中,可以在收到内存释放指令之后,先将该第一内存区域保留至预设保留池中。如果在收到内存释放指令的预设时长内,未收到该外接设备发送的直通请求,则可以认为外接设备后续较大概率不需要再访问内存空间了,进而可以释放该第一内存区域,并清除第一映射项。其中,预设时长可以是根据实际情况设置的,示例的,预设时长可以为30分钟。释放第一内存区域的操作可以基于预设的释放方式,例如,软件unmap方式实现,清除第一映射项可以是刷新第一缓冲区,以删除第一映射项。如果收到外接设备发送的直通请求,就可以直接将该第一内存区域分配给外接设备使用,后续在收到访问请求时,可以直接基于之前设置的第一映射项进行转译,进而避免降低重新分配内存区域的操作量。进一步地,如果在外接设备不为活跃设备,则可以认为外接设备不太可能在后续需要访问虚拟机的内存。因此,可以直接释放该第二内存区域,并清除第二映射项。其中,释放第二内存区域的操作可以基于常规的释放方式直接释放。
本发明实施例中,通过在外接设备为活跃设备的情况下,在确认外接设备后续不需要再访问内存空间的情况下,才执行释放操作以及清除操作,可以避免过早执行释放操作以及清除操作,导致后续重新进行设备直通时执行重复的不必要操作的问题,避免对第一缓冲区执行不必要的刷新操作的问题,减少刷新次数,确保在需要重新进行设备直通时,能够以较少的操作量,重新建立设备直通。同时,在外接设备不为活跃设备的情况下,直接执行释放操作以及清除操作,可以避免对内存空间的不必要占用以及对第二缓冲区的不必要占用。
进一步地,在转译过程中,如果电子设备未能从缓冲区中查找到对应的映射项,就需要进一步查找IO页表。这样,会降低IO虚拟化的效率。本发明实施例中,通过减少刷新次数,一定程度上可以提高从缓冲区中查找到所需映射项的概率,进而提高IO虚拟化的效率。
可选的,在一种实现方式中,本发明实施例中可以通过下述步骤实现获取外接设备的状态信息:
步骤S41、获取持续一段时间内所述外接设备执行指定操作的历史执行数量和/或当前所持有的内存区域的区域大小,以作为所述状态信息。
本步骤中,持续一段时间的具体长度可以根据实际需求设定,本发明实施例对此不作限定。进一步地,指定操作可以为调用预设指令集的操作,其中,该预设指令集可以为dma_ops集合。电子设备可以在外接设备每调用一次预设指令集中指令的情况下,进行一次记录。相应地,电子设备可以读取记录的次数,得到历史执行数量。进一步地,外接设备可能多次申请设备直通,或者一次申请分配多个内存区域,相应地,外接设备可能持有多个内存区域。区域大小可以指的是当前该外接设备持有的所有内存区域的大小总和。其中,外接设备在访问所分配的内存区域时,可以是基于直接存储器访问(Direct Memory Access,DMA)方式访问,相应地,分配给外接设备的内存区域也可以称为DMA区域。
相应地,本发明实施例中还可以执行下述步骤:
步骤S42、若所述历史执行数量大于第一预设阈值和/或所述区域大小大于第二预设阈值,则确定所述状态信息指示所述外接设备为活跃设备;否则,指示所述外界设备不为活跃设备。
本步骤中,第一预设阈值/第二预设阈值可以是根据实际需求设置的,本发明实施例对此不作限定。如果获取到的历史执行数量大于第一预设阈值和/或区域大小大于第二预设阈值,即,持续一段时间内的历史执行数量大于第一预设阈值和/或持续一段时间内的区域大小大于第二预设阈值,满足历史执行数量持续一段时间大于第一预设阈值以及区域大小持续一段时间大于第二预设阈值中的至少一条,则可以认为该外接设备访问内存较为频繁,该外接设备为活跃设备。进一步地,如果历史执行数量不大于第一预设阈值且区域大小不大于第二预设阈值,则可以确定状态信息指示该外接设备不为活跃设备。
由于外接设备越活跃,执行指定操作的频次往往越高,所申请的内存区域往往越多越大。因此,本发明实施例中通过获取外接设备执行指定操作的历史执行数量和/或当前所持有的内存区域的区域大小,基于历史执行数量和/或区域大小确定外接设备是否活跃,一定程度上可以确保状态信息的准确性。
可选的,在另一种实现方式中,本发明实施例中可以通过下述步骤实现获取外接设备的状态信息:
步骤S51、获取所述外接设备的设备类型,以作为所述状态信息。
本步骤中,外接设备的设备类型可以用于表征外接设备的传输速度。设备类型可以分为第一设备类型以及第二设备类型。其中,第一设备类型的设备传输速度可以大于第二设备类型的设备传输速度。即,第一设备类型的外接设备可以为高速I/O设备,第二设备类型的外接设备可以为低速I/O设备。进一步地,可以读取外接设备的配置信息,以确定外接设备的设备类型。
相应地,本发明实施例中还可以执行下述步骤:
步骤S52、若所述设备类型为第一设备类型,则确定所述状态信息指示所述外接设备为活跃设备。
本步骤中,如果该外接设备的设备类型为第一设备类型,即,该外接设备为高速I/O设备,则可以说明该外接设备访问内存可能较为频繁,该外接设备很大概率为活跃设备。
步骤S53、若所述设备类型为第二设备类型,则确定所述状态信息指示所述外接设备不为活跃设备;所述第一设备类型的设备传输速度大于所述第二设备类型的设备传输速度。
本步骤中,如果该外接设备的设备类型为第二设备类型,即,该外接设备为低速I/O设备,则可以说明该外接设备访问内存的需求可能较小,该外接设备很大概率不为活跃设备。
本发明实施例中,仅需获取外接设备的设备类型,基于外接设备的设备类型即可确定外接设备是否活跃。这样,一定程度上可以降低获取状态信息的操作量,提高获取效率。
可选的,在外接设备还未与电子设备建立过设备直通之前,可能并不会存在历史执行数量/当前所持有的内存区域的区域大小等参数,因此,本发明实施例中可以在首次接收到外接设备发送的直通请求的情况下,直接为外接设备分配单页大小为第一大小的第一内存区域,以在第一缓冲区中设置第一映射项。即,在初始阶段,直接将外接设备视为活跃设备进行处理,进而确保后续的转译效率。相应地,可以在外接设备发送的直通请求非首次发送的情况下,执行获取外接设备的状态信息的操作,进而避免执行不必要的获取操作。
或者,本发明实施例中也可以在首次接收到外接设备发送的直通请求的情况下,基于上述步骤S51~步骤S53确定电子设备是否为活跃设备。后续在外接设备发送的直通请求非首次发送的情况下基于上述步骤S41~步骤S42确定电子设备是否为活跃设备。
可选的,本发明实施中还可以确定所述外接设备的内存使用行为模式;在所述内存使用行为模式为指定模式的情况下,执行确定所述状态信息指示所述外接设备为活跃设备的操作;所述指定模式的外接设备仅在与所述电子设备解除连接时,释放所分配的内存区域。
实际应用场景中,外接设备在访问内存时,可能是基于长期使用内存区域的内存使用行为模式,也可能是基于动态使用内存区域的行为模式。本发明实施例中的指定模式可以为长期使用内存区域的行为模式。具体的,动态使用内存区域的行为模式中,是通过读写data buffer来实现内存使用。长期使用内存区域的行为模式中,是通过读写ringbuffer来实现内存使用。其中,ring buffer是在设备初始化阶段由内核驱动创建,在外接设备与电子设备解除连接(例如,休眠关机或设备卸载)时才会被驱动销毁和释放,即,采用这种行为模式的外接设备对应的映射项是长期使用的,即,是长期不解映射的。而databuffer会在系统运行过程中频繁的创建和释放。因此,本发明实施例可以进一步在内存使用行为模式为指定模式的情况下,才执行确定状态信息指示外接设备为活跃设备的操作,进而避免后续为频繁释放内存区域的外接设备内存区域采用大页映射,进而浪费资源的问题。
本发明实施例中,通过进一步确定外接设备的内存使用行为模式,在内存使用行为模式为指定模式的情况下,即,外接设备使用长期不解映射的内存区域的情况下,才为外接设备的该内存区域设置第一标签,进而一定程度上可以避免为操作活跃但是对内存区域的释放频率较高的外接设备内存区域采用大页映射,进而导致不必要的资源占用的问题。
进一步地,本发明实施例还可以在内存使用行为模式不为指定模式的情况下为该外接设备分配单页大小为第二大小的第二内存区域,以在第二缓冲区中设置第二映射项以使得为该外接设备分配常规页,进行小页映射。即,以FIOTLB存储映射项,提高下一次查找命中率。需要说明的是,本发明实施例中,也可以在这种情况下为外接设备的内存区域设置第三标签。即,在外接设备设置有第三标签的情况下,可以以第二存储器实现第二预设缓冲区。其中,第三标签的具体内存可以根据实际需求设置,示例的,第三标签可以为“tag2”。当然,由于对设置有第三标签的外接设备的内存区域的处理逻辑与对设置有第二标签的外接设备的内存区域的处理逻辑相同,因此,本发明实施例中也可以设置第三标签与第二标签相同。
本发明实施例中,通过进一步在内存使用行为模式不为指定模式的情况下,即,外接设备对内存区域的释放频率较高的情况下,为外接设备分配单页大小为第二大小的第二内存区域,可以在实现为外接设备建立设备直通的同时,避免对页大小较大的内存区域的不必要占用。
需要说明的是,本发明实施例中电子设备执行的各个操作,可以具体是由电子设备中安装的虚拟机执行的,具体的,可以是基于输入输出内存管理单元(Input OutputMemory Managerment Unit,IOMMU)技术实现的,本发明实施例对此不作限定。进一步地,本发明实施例中各步骤之间可以相互引用结合,示例的,可以在执行步骤S41~S42的情况下,执行步骤S21、步骤S31,本发明实施例对此不作限定。
在一种现有实现方式,往往是增大缓冲区可容纳的项数,或者是直接为所有外接设备均采用大页映射。这种方式会导致硬件成本过大,且为所有外接设备均采用大页映射的方式,可能会导致未采用按大页对齐的内存区域,频繁造成刷新。
图2是本发明实施例提供的一种处理流程示意图,如图2所示,在进行设备直通时,可以先通过先判断外接设备是否活跃,在外接设备不活跃或者是活跃但不是长期映射的情况下设置第二标签“tag1”,在外接设备活跃且是长期映射的情况下,设置第一标签“tag0”,以作为状态信息。进一步地,在外接设备设置有第一标签“tag0”的情况下,采用“VIOTLB”,即,为外接设备分配单页大小为第一大小的第一内存区域,以在第一缓冲区中设置第一映射项。其中,第一内存区域可以为按大页对齐的内存区域。且在需要释放内存区域(unmap)时,先在保留池中进行保留,在到达预设时长时(time out),才释放内存,以便于后续重新进行设备直通。在外接设备未设置有第一标签“tag0”的情况下,采用“FIOTLB”,即,为外接设备分配单页大小为第二大小的第二内存区域,以在第二缓冲区中设置第二映射项。且在需要释放内存区域时,直接释放内存,以便于后续重新进行内存分配和释放。这样,可以在降低刷新次数,提高后续转译效率的同时,避免带来过大的硬件成本开销。
图3是本发明实施例提供的一种设备处理装置的结构框图,包括:
获取模块301,用于响应于所述外接设备发送的直通请求,获取所述外接设备的状态信息;
第一处理模块302,用于若所述状态信息指示所述外接设备为活跃设备,为所述外接设备分配单页大小为第一大小的第一内存区域,以在第一缓冲区中设置第一映射项;
第二处理模块303,用于若所述状态信息指示所述外接设备不为活跃设备,为所述外接设备分配单页大小为第二大小的第二内存区域,以在第二缓冲区中设置第二映射项;
其中,所述第一映射项用于表征所述外接设备使用的第一地址与第一物理地址的映射关系,所述第一物理地址为第一大小的内存页对应的真实物理地址;所述第二映射项用于表征所述第一地址与第二物理地址的映射关系,所述第二物理地址为第二大小的内存页对应的真实物理地址;所述第一大小大于所述第二大小。
可选的,所述获取模块301,具体用于:
获取持续一段时间内所述外接设备执行指定操作的历史执行数量和/或当前所持有的内存区域的区域大小,以作为所述状态信息;
相应地,所述装置还包括:
第一确定模块,用于若所述历史执行数量大于第一预设阈值和/或所述区域大小大于第二预设阈值,则确定所述状态信息指示所述外接设备为活跃设备;否则,指示所述外界设备不为活跃设备。
可选的,所述获取模块301,具体用于:
获取所述外接设备的设备类型,以作为所述状态信息;
相应地,所述装置还包括:
第二确定模块,用于若所述设备类型为第一设备类型,则确定所述状态信息指示所述外接设备为活跃设备;若所述设备类型为第二设备类型,则定所述状态信息指示所述外接设备不为活跃设备;
其中,所述第一设备类型的设备传输速度大于所述第二设备类型的设备传输速度。
可选的,所述装置还包括:
第三确定模块,用于确定所述外接设备的内存使用行为模式;
执行模块,用于在所述内存使用行为模式为指定模式的情况下,执行所述确定所述状态信息指示所述外接设备为活跃设备的操作;所述指定模式的外接设备仅在与所述电子设备解除连接时,释放所分配的内存区域。
可选的,第四确定模块,用于在所述内存使用行为模式不为所述指定模式的情况下,为所述外接设备分配所述单页大小为第二大小的第二内存区域,以在所述第二缓冲区中设置所述第二映射项。
可选的,所述装置还包括:第一释放模块,用于在为所述外接设备分配单页大小为第一大小的第一内存区域之后,若接收到内存释放指令,则在预设时长内未接收到新的直通请求的情况下,释放所述第一内存区域并清除所述第一映射项;
第二释放模块,用于在为所述外接设备分配单页大小为第二大小的第二内存区域之后,若接收到内存释放指令,则直接释放所述第二内存区域并清除所述第二映射项。
可选的,所述装置还包括:
设置模块,用于为所述第一内存区域设置第一标签,以及,为所述第二内存区域设置第二标签;
在所述外接设备分配的内存区域设置有第一标签的情况下,以第一存储器实现所述第一预设缓冲区;
在所述外接设备分配的内存区域设置有第二标签的情况下,以第二存储器实现所述第二预设缓冲区;
所述第一存储器的读写速度大于所述第二存储器的读写速度。
综上所述,本发明实施例提供的一种设备处理装置,在接收到外接设备发送直通请求的情况下,会先获取外接设备的状态信息,在状态信息指示外接设备为活跃设备的情况下,为外接设备分配单页大小为第一大小的第一内存区域,以在第一缓冲区中设置第一映射项,在状态信息指示外接设备不为活跃设备的情况下,为外接设备分配单页大小为第二大小的第二内存区域,以在第二缓冲区中设置第二映射项。其中,第一大小大于第二大小。相较于在进行设备直通时,直接为所有外接设备均分配最小页大小的内存区域,本申请中通过识别外接设备的活跃状态,为活跃设备分配采用更大的页大小的内存区域,即,为活跃设备采用大页映射。这样,可以使得一个第一映射项能够指示更大范围的内存空间,进而可以以更少数量的第一映射项覆盖第一内存区域,由于第一映射项的数量更少,进而一定程度上可以缩小后续查找第一映射项时的查找范围,这样,通过查找映射项即可较为快速的查找到对应的内存区域中的地址,提高查找对应的内存区域中地址的查找效率。由于查找效率变高,因此可以进一步提高后续的转译效率,从而提高内存访问效率。
同时,由于缓冲区可容纳项数有限,因此,第一映射项的数量更少,一定程度上可以降低由于第一缓冲区中的需要存储的表项数过多导致缓冲区被刷新的次数,进而可以进一步提高后续转译时,从缓冲区中查找到对应的映射项的概率,进而确保转译效率。且本发明实施例仅对活跃设备采用大页映射,一定程度可以在提高效率的同时,避免所需成本过大的问题。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
优选的,本发明实施例还提供一种电子设备,包括一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行上述实施例提供的设备处理方法。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例提供的设备处理方法的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
在此提供的方法不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造具有本发明方案的系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本发明并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的设备处理方法中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (11)

1.一种设备处理方法,其特征在于,所述方法应用于连接有外接设备的电子设备,所述方法包括:
响应于所述外接设备发送的直通请求,获取所述外接设备的状态信息;
若所述状态信息指示所述外接设备为活跃设备,为所述外接设备分配单页大小为第一大小的第一内存区域,以在第一缓冲区中设置第一映射项;
若所述状态信息指示所述外接设备不为活跃设备,为所述外接设备分配单页大小为第二大小的第二内存区域,以在第二缓冲区中设置第二映射项;
其中,所述第一映射项用于表征所述外接设备使用的第一地址与第一物理地址的映射关系,所述第一物理地址为第一大小的内存页对应的真实物理地址;所述第二映射项用于表征所述第一地址与第二物理地址的映射关系,所述第二物理地址为第二大小的内存页对应的真实物理地址;所述第一大小大于所述第二大小。
2.根据权利要求1所述的方法,其特征在于,所述获取所述外接设备的状态信息,包括:
获取持续一段时间内所述外接设备执行指定操作的历史执行数量和/或
当前所持有的内存区域的区域大小,以作为所述状态信息;
相应地,所述方法还包括:
若所述历史执行数量大于第一预设阈值和/或所述区域大小大于第二预设阈值,则确定所述状态信息指示所述外接设备为活跃设备;否则,指示所述外界设备不为活跃设备。
3.根据权利要求1或2所述的方法,其特征在于,所述获取所述外接设备的状态信息,包括:
获取所述外接设备的设备类型,以作为所述状态信息;
相应地,所述方法还包括:
若所述设备类型为第一设备类型,则确定所述状态信息指示所述外接设备为活跃设备;
若所述设备类型为第二设备类型,则确定所述状态信息指示所述外接设备不为活跃设备;
其中,所述第一设备类型的设备传输速度大于所述第二设备类型的设备传输速度。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
确定所述外接设备的内存使用行为模式;
在所述内存使用行为模式为指定模式的情况下,执行所述确定所述状态信息指示所述外接设备为活跃设备的操作;所述指定模式的外接设备仅在与所述电子设备解除连接时,释放所分配的内存区域。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在所述内存使用行为模式不为所述指定模式的情况下,为所述外接设备分配所述单页大小为第二大小的第二内存区域,以在所述第二缓冲区中设置所述第二映射项。
6.根据权利要求1所述的方法,其特征在于,所述为所述外接设备分配单页大小为第一大小的第一内存区域之后,所述方法还包括:若接收到内存释放指令,则在预设时长内未接收到新的直通请求的情况下,释放所述第一内存区域并清除所述第一映射项;
所述为所述外接设备分配单页大小为第二大小的第二内存区域之后,所述方法还包括:若接收到内存释放指令,则直接释放所述第二内存区域并清除所述第二映射项。
7.根据权利要求1至6任一所述的方法,其特征在于,所述方法还包括:
为所述第一内存区域设置第一标签,以及,为所述第二内存区域设置第二标签;
在所述外接设备分配的内存区域设置有第一标签的情况下,以第一存储器实现所述第一预设缓冲区;
在所述外接设备分配的内存区域设置有第二标签的情况下,以第二存储器实现所述第二预设缓冲区;
所述第一存储器的读写速度大于所述第二存储器的读写速度。
8.一种设备处理装置,其特征在于,所述装置应用于连接有外接设备的电子设备,所述装置包括:
获取模块,用于响应于所述外接设备发送的直通请求,获取所述外接设备的状态信息;
第一处理模块,用于若所述状态信息指示所述外接设备为活跃设备,为所述外接设备分配单页大小为第一大小的第一内存区域,以在第一缓冲区中设置第一映射项;
第二处理模块,用于若所述状态信息指示所述外接设备不为活跃设备,为所述外接设备分配单页大小为第二大小的第二内存区域,以在第二缓冲区中设置第二映射项;
其中,所述第一映射项用于表征所述外接设备使用的第一地址与第一物理地址的映射关系,所述第一物理地址为第一大小的内存页对应的真实物理地址;所述第二映射项用于表征所述第一地址与第二物理地址的映射关系,所述第二物理地址为第二大小的内存页对应的真实物理地址;所述第一大小大于所述第二大小。
9.根据权利要求8的装置,其特征在于,所述装置还包括:
设置模块,用于为所述第一内存区域设置第一标签,以及,为所述第二内存区域设置第二标签;
在所述外接设备分配的内存区域设置有第一标签的情况下,以第一存储器实现所述第一预设缓冲区;
在所述外接设备分配的内存区域设置有第二标签的情况下,以第二存储器实现所述第二预设缓冲区;
所述第一存储器的读写速度大于所述第二存储器的读写速度。
10.一种电子设备,其特征在于,包括:
一个或多个处理器;和其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述电子设备执行如权利要求1-7任一项所述的方法。
11.一个或多个机器可读介质,其特征在于,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1-7任一项所述的方法。
CN202110287993.5A 2021-03-17 2021-03-17 设备处理方法、装置、电子设备及可读介质 Active CN113360243B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110287993.5A CN113360243B (zh) 2021-03-17 2021-03-17 设备处理方法、装置、电子设备及可读介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110287993.5A CN113360243B (zh) 2021-03-17 2021-03-17 设备处理方法、装置、电子设备及可读介质

Publications (2)

Publication Number Publication Date
CN113360243A true CN113360243A (zh) 2021-09-07
CN113360243B CN113360243B (zh) 2023-07-14

Family

ID=77524990

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110287993.5A Active CN113360243B (zh) 2021-03-17 2021-03-17 设备处理方法、装置、电子设备及可读介质

Country Status (1)

Country Link
CN (1) CN113360243B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090182976A1 (en) * 2008-01-15 2009-07-16 Vmware, Inc. Large-Page Optimization in Virtual Memory Paging Systems
CN102184142A (zh) * 2011-04-19 2011-09-14 中兴通讯股份有限公司 一种利用巨页映射降低cpu资源消耗的方法和装置
CN104951406A (zh) * 2015-06-12 2015-09-30 上海华为技术有限公司 一种分页式地址空间管理方法以及控制器
CN111666230A (zh) * 2020-05-27 2020-09-15 江苏华创微系统有限公司 在组相联tlb中支持巨页的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090182976A1 (en) * 2008-01-15 2009-07-16 Vmware, Inc. Large-Page Optimization in Virtual Memory Paging Systems
CN102184142A (zh) * 2011-04-19 2011-09-14 中兴通讯股份有限公司 一种利用巨页映射降低cpu资源消耗的方法和装置
CN104951406A (zh) * 2015-06-12 2015-09-30 上海华为技术有限公司 一种分页式地址空间管理方法以及控制器
CN111666230A (zh) * 2020-05-27 2020-09-15 江苏华创微系统有限公司 在组相联tlb中支持巨页的方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈吉等: "一种支持大页的层次化DRAM/NVM混合内存系统", 计算机研究与发展 *

Also Published As

Publication number Publication date
CN113360243B (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
CN108804350B (zh) 一种内存访问方法及计算机系统
US9934155B2 (en) Method, system, and apparatus for page sizing extension
JP4831759B2 (ja) Dmaアドレス空間を割当てるための方法、システム、およびコンピュータ・プログラム
US7653799B2 (en) Method and apparatus for managing memory for dynamic promotion of virtual memory page sizes
US20070067505A1 (en) Method and an apparatus to prevent over subscription and thrashing of translation lookaside buffer (TLB) entries in I/O virtualization hardware
US6366994B1 (en) Cache aware memory allocation
US20070208954A1 (en) Method and system for designating and handling confidential memory allocations
JP2019109906A (ja) 単一のページテーブルエントリ内の複数のセットの属性フィールド
JP2008033928A (ja) Gpuにおけるページマッピングのための専用機構
CN108595349B (zh) 大容量存储设备的地址转换方法与装置
JP2005293574A (ja) ホールをもつシステムメモリアドレスをサポートするデータ処理システム及びコンピュータプログラム
US20140040577A1 (en) Automatic Use of Large Pages
US10467138B2 (en) Caching policies for processing units on multiple sockets
US20160026399A1 (en) Block i/o interface for a host bus adapter that utilizes nvdram
CN105138481A (zh) 存储数据的处理方法、装置和系统
CN105335308A (zh) 对存储设备的访问信息处理方法和装置、系统
CN113039531B (zh) 用于分配缓存资源的方法、系统和存储介质
US8055876B2 (en) Selectively mark free frames as unused for cooperative memory over-commitment
US8751724B2 (en) Dynamic memory reconfiguration to delay performance overhead
CN110674051A (zh) 一种数据存储方法及装置
CN106295413B (zh) 半导体装置
CN113360243B (zh) 设备处理方法、装置、电子设备及可读介质
US10817432B2 (en) Memory address assignment method for virtual machine and apparatus
US9158697B2 (en) Method for cleaning cache of processor and associated processor
US20090031100A1 (en) Memory reallocation in a computing environment

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant