CN107077376A - 帧缓存实现方法、装置、电子设备和计算机程序产品 - Google Patents

帧缓存实现方法、装置、电子设备和计算机程序产品 Download PDF

Info

Publication number
CN107077376A
CN107077376A CN201680002798.0A CN201680002798A CN107077376A CN 107077376 A CN107077376 A CN 107077376A CN 201680002798 A CN201680002798 A CN 201680002798A CN 107077376 A CN107077376 A CN 107077376A
Authority
CN
China
Prior art keywords
address
virtual
client computer
frame buffer
operating system
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
CN201680002798.0A
Other languages
English (en)
Other versions
CN107077376B (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.)
Cloudminds Shenzhen Holdings Co Ltd
Cloudminds Inc
Original Assignee
Cloudminds Inc
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 Cloudminds Inc filed Critical Cloudminds Inc
Publication of CN107077376A publication Critical patent/CN107077376A/zh
Application granted granted Critical
Publication of CN107077376B publication Critical patent/CN107077376B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/0871Allocation or management of cache space
    • 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/10Address translation
    • G06F12/109Address translation for multiple virtual address spaces, e.g. segmentation
    • 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
    • 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

Landscapes

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

Abstract

本发明提供了帧缓存实现方法、装置、电子设备和计算机程序产品,所述方法包括:确定显示设备对应的物理帧缓存地址映射至用户空间的虚拟地址;响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系。本发明建立客户机中的虚拟帧缓存地址与真实的物理帧缓存在用户空间的虚拟地址的映射关系,能够将运行于客户机的客户操作系统的显示数据基于地址映射关系发送至物理帧缓存,无需为虚拟帧缓存分配物理存储区,也省去存储区之间拷贝的时间和过程,因此能够减少主操作系统资源和存储资源的占用,提升虚拟化系统性能,缩短客户操作系统显示操作执行时间。

Description

帧缓存实现方法、装置、电子设备和计算机程序产品
技术领域
本发明涉及虚拟化技术领域,特别涉及帧缓存实现方法、装置、电子设备和计算机程序产品。
背景技术
帧缓存(Frame Buffer)是Linux系统为显示设备提供的一个接口,其将显示缓冲区抽象,屏蔽图像硬件的底层差异,允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作。相关操作均由帧缓存驱动完成,使用户不必关心物理显示缓冲区的具体地址及存放方式。
图1示出了虚拟化系统架构示意图,虚拟化系统架构中可以运行多个Linux操作系统(或与Linux操作系统类似的操作系统,例如Android操作系统),其中包括一个主操作系统(host OS),以及一个或者多个客户操作系统(guest OS),主操作系统运行于宿主机,在主操作系统上运行一个或者多个客户虚拟机,即客户机,各客户机作为主操作系统的应用程序运行,其可以为运行于该客户机上的客户操作系统模拟硬件设备以供客户操作系统使用,在各客户机运行的客户操作系统中可运行各种应用程序。基于虚拟化系统架构,多个操作系统之间可共享硬件设备提供的CPU,内存和输入输出设备。
现有技术中,客户操作系统调用帧缓存的实现方式是为客户操作系统运行的客户机实现一个虚拟帧缓存,在客户操作系统运行的客户机的内核(kernel)层中运行虚拟帧缓存驱动,为虚拟帧缓存分配实际存储区以存储客户操作系统的显示像素,所述存储区将其地址空间映射至宿主机用户面得到虚拟地址,使客户机能够通过地址映射对其虚拟帧缓存对应的真实的虚拟帧缓存存储区进行操作。当客户操作系统进行显示时,客户机将其虚拟帧缓存对应的存储区中的内容拷贝到真实的帧缓存对应的存储区中进行显示。
但是为虚拟帧缓存分配物理存储区,并且在需要显示时,将虚拟帧缓存物理存储区中的内容拷贝到真实的帧缓存对应的存储区中,会占用大量主操作系统资源和存储资源,导致虚拟化系统性能降低,客户操作系统显示操作执行时间长。
发明内容
本发明实施例提出了帧缓存实现方法、装置、电子设备和计算机程序产品,主要用以解决虚拟化系统性能降低,客户操作系统显示操作执行时间长的问题。
在一个方面,本发明实施例提供了一种虚拟帧缓存实现方法,其特征在于,所述方法包括:
确定显示设备对应的物理帧缓存地址映射至用户空间的虚拟地址;
响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系。
在另一个方面,本发明实施例提供了一种虚拟帧缓存实现装置,其特征在于,所述装置包括:
确定模块,用于确定显示设备对应的物理帧缓存地址映射至用户空间的虚拟地址;
地址分配模块,用于响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系。
在另一个方面,本发明实施例提供了一种电子设备,其特征在于,所述电子设备包括:显示设备,存储器,一个或多个处理器;以及一个或多个模块,所述一个或多个模块被存储在所述存储器中,并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括用于执行任一上述方法中各个步骤的指令。
在另一个方面,本发明实施例提供了一种与包括显示设备的电子设备结合使用的计算机程序产品,所述计算机程序产品包括计算机可读的存储介质和内嵌于其中的计算机程序机制,所述计算机程序机制包括用于执行任一上述方法中各个步骤的指令。
本发明实施例的有益效果如下:
本发明实施例建立客户机中的虚拟帧缓存地址与真实的物理帧缓存在用户空间的虚拟地址的映射关系,能够将运行于客户机的客户操作系统的显示数据基于地址映射关系发送至物理帧缓存,无需为虚拟帧缓存分配物理存储区,也省去存储区之间拷贝的时间和过程,因此能够减少主操作系统资源和存储资源的占用,提升虚拟化系统性能,缩短客户操作系统显示操作执行时间。
附图说明
下面将参照附图描述本发明的具体实施例,其中:
图1示出了现有技术中虚拟化系统架构示意图;
图2示出了本发明实施例一中帧缓存实现方法应用的虚拟化系统架构示意图;
图3示出了本发明实施例一中帧缓存实现方法的流程示意图;
图4示出了本发明实施例二中帧缓存实现装置的结构示意图;
图5示出了本申请实施例三中电子设备的结构示意图。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明中的实施例及实施例中的特征可以互相结合。
发明人在发明过程中注意到:在虚拟化系统架构中实现帧缓存的现有方案,需要为虚拟帧缓存分配物理存储区,并且在需要显示时,将虚拟帧缓存物理存储区中的内容拷贝到真实的帧缓存对应的存储区中,会占用大量主操作系统资源和存储资源,导致虚拟化系统性能降低,客户操作系统显示操作执行时间长。
针对上述不足,本发明提供了一种帧缓存实现方法,建立客户机中的虚拟帧缓存地址与真实的物理帧缓存在用户空间的虚拟地址的映射关系,能够将运行于客户机的客户操作系统的显示数据基于地址映射关系发送至物理帧缓存,无需为虚拟帧缓存分配物理存储区,也省去存储区之间拷贝的时间和过程,因此能够减少主操作系统资源和存储资源的占用,提升虚拟化系统性能,缩短客户操作系统显示操作执行时间。
为了便于本发明的实施,下面以实例进行说明。
实施例一:
图2示出了本发明实施例一中帧缓存实现方法应用的虚拟化系统架构示意图,客户机上运行的客户操作系统的内核层中运行虚拟缓存驱动,以实现客户机的虚拟缓存。
图3示出了本发明实施例一中帧缓存实现方法流程示意图,如图3所示,所述帧缓存实现方法包括:
步骤101,确定显示设备对应的物理帧缓存地址映射至用户空间的虚拟地址;
步骤102,响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系。
在所述步骤101中,因虚拟化架构中硬件设备不能直接被访问,因此通常会建立设备物理空间与用户空间中虚拟地址的对应关系,从而能够通过存储器映射实现用户空间直接访问设备的物理地址。一个物理显示设备通常对应一个物理帧缓存存储区,显示设备能够直接读取物理帧缓存存储区中的显示数据进行显示。该物理帧缓存存储区的地址空间在宿主机的用户空间映射为一个虚拟的地址空间,使物理帧缓存存储区的地址空间中的任一地址在用户面能够映射为一个虚拟的地址。
本实施例中首先确定虚拟化系统架构中的显示设备对应的物理帧缓存地址空间映射至用户空间后的虚拟地址空间,在确定其映射关系时也可以通过确定其中某一个地址(例如首地址)的映射关系进而获取地址空间的映射关系。
在步骤102中,客户机中的虚拟帧缓存同样需要地址映射才能确定其对应的存储空间,当客户机请求获取其虚拟帧缓存地址对应的存储区地址时,将上述步骤101中确定的物理帧缓存地址映射至用户空间的虚拟地址提供给客户机,以便客户机将其虚拟帧缓存地址空间映射至上述虚拟地址空间,进而映射至物理帧缓存存储区的地址空间。
客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系之后,当虚拟帧缓存驱动接收到客户操作系统向虚拟帧缓存地址的操作指令时,能够根据虚拟帧缓存地址与所述虚拟地址的映射关系,以及所述虚拟地址与物理帧缓存地址的映射关系,使所述操作指令直接指向物理帧缓存,使客户机的客户操作系统能够直接对物理帧缓存进行操作。当进行显示时,客户操作系统可直接将显示数据直接写入物理帧缓存,而无需再拷贝。
在一些实施方式中,在所述客户机启动时,响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系。
上述步骤102可以发生于客户机启动时。在客户机启东时,首先客户机中的虚拟帧缓存驱动通过操作主操作系统中物理帧缓存驱动在用户空间提供的接口获得物理帧缓存的参数,物理帧缓存在存储区的大小,或者长、宽,以及支持的数据格式等信息,虚拟帧缓存驱动根据物理帧缓存参数确定或者计算得到物理帧缓存实际存储空间的大小。之后在客户操作系统启动的命令行中,通过连续内存分配器预留大于等于物理帧缓存两倍大小的内存空间,同时设置连续内存分配器的起始地址为系统的闲置的地址,其中虚拟帧缓存地址空间分配过程中确保所述起始地址是按照客户操作系统内核的页表要求进行对齐的,并且该起始地址后预留的地址空间都是闲置的。
确定虚拟帧缓存地址之后,通过设置虚拟帧缓存提供的基地址设置寄存器将所述虚拟帧缓存地址传递给客户机,使客户机在获得该虚拟帧缓存地址后,可与物理帧缓存地址映射至用户空间的虚拟地址再进行映射。
在一些实施方式中,当运行于所述客户机的客户操作系统对所述虚拟帧缓存进行操作,并且所述操作系统为前台运行的操作系统时,向所述物理帧缓存下发操作指令,并向客户操作系统返回操作成功的信息。
若虚拟化系统架构中运行了多个客户机,各客户机运行各自的客户操作系统,此时可能有一个客户操作系统为前台运行状态,而其他客户操作系统为后台运行状态,或者关闭状态。各客户机能够感知当前自身的客户操作系统是否为前台运行状态,只有在某一客户机的客户操作系统在前台运行时,虚拟帧缓存驱动才会将客户操作系统对虚拟帧缓存的操作指令,依据地址映射关系下发至物理帧缓存。例如仅当某一客户机的客户操作系统在前台运行时,该客户机的虚拟帧缓存驱动才能够将需要显示的像素写入物理帧缓存,并且在写入完成后可向客户操作系统反馈操作成功的返回值。
在一些实施方式中,当运行于所述客户机的客户操作系统对所述虚拟帧缓存进行操作,并且所述操作系统为后台运行的操作系统时,不向所述物理帧缓存下发操作指令,并向客户操作系统返回操作成功的信息。
若虚拟化系统架构中运行了多个客户机,而其中某一客户机的客户操作系统在后台运行时,该客户操作系统或者其上运行的应用程序可能仍会向虚拟帧缓存发起帧缓存操作,此时不再将客户操作系统对虚拟帧缓存的操作指令,依据地址映射关系下发至物理帧缓存,而是直接向客户操作系统返回操作成功的信息。本实施方式中虚拟帧缓存驱动模拟操作成功进行,但实际上并不进行相应操作,避免对当前占用物理帧缓存的前台运行的操作系统的显示造成影响。
在一些实施方式中,通过设置所述虚拟帧缓存的寄存器,向物理帧缓存下发操作指令。所述虚拟帧缓存的寄存器与物理帧缓存的寄存器对应,通常包括多组与虚拟帧缓存的参数、操作、地址或者控制相关的寄存器。例如帧缓存的寄存器可以包括以下几个/组:
1)属性寄存器
为虚拟帧缓存驱动设置虚拟帧缓存的属性寄存器,为物理帧缓存驱动设置物理帧缓存的属性寄存器,这两个寄存器中均存储物理帧缓存参数,其中虚拟帧缓存的属性寄存器中的物理帧缓存参数可以为客户机启动时虚拟帧缓存驱动读取物理帧缓存的属性寄存器的数据得到的。所述物理帧缓存参数可以为物理帧缓存在存储设备中的长、宽以及支持的数据格式等信息。客户操作系统可以对属性寄存器进行读操作以获取物理帧缓存参数。
当前台运行的客户操作系统读取帧缓存参数时,客户操作系统能够通过虚拟帧缓存驱动正常读取虚拟帧缓存的参数,也即物理帧缓存参数。当后台运行的客户操作系统读取帧缓存参数时,一种情况是客户操作系统不再能够通过虚拟帧缓存驱动正常读取虚拟帧缓存的参数,仅获得读取成功的信息;另一种情况是物理帧缓存的属性寄存器已经将其数据同步至虚拟帧缓存的属性寄存器,而其中帧缓存参数通常是只读并且不会改变的,此种情况下,即便客户操作系统在后台运行,其仍能够正常读取虚拟帧缓存的属性寄存器以获取物理帧缓存参数。
2)地址寄存器
为虚拟帧缓存驱动设置虚拟帧缓存的地址寄存器,用于存储虚拟帧缓存地址。在客户机启动时,虚拟帧缓存驱动通过连续内存分配器获取虚拟帧缓存地址后可通过设置虚拟帧缓存的地址设置寄存器来传递该地址给客户机。同样的物理帧缓存驱动设置有物理帧缓存的地址寄存器,用于存储物理帧缓存地址映射至用户空间的虚拟地址。虚拟帧缓存驱动可由物理帧缓存的地址寄存器获得所述虚拟地址,以建立映射关系。
当前台运行的客户操作系统中运行的应用程序需要显示相关内容时,可读取虚拟帧缓存地址寄存器中的虚拟帧缓存地址,进而向虚拟帧缓存中写入显示数据。
3)中断寄存器
为物理帧缓存驱动设置物理帧缓存的中断寄存器,用于存储物理帧缓存的中断信息,所述中断信息可以包括中断使能和中断状态等信息,分别由中断使能寄存器和中断状态寄存器存储,所述中断寄存器能够提供物理帧缓存设备的操作结果或者其他异步事件等。为虚拟帧缓存驱动同样设置虚拟帧缓存的中断寄存器,用于存储由物理帧缓存的断寄存器获取的中断信息。当物理帧缓存的中断寄存器中中断信息改变时,可将其更新至各客户机中的虚拟帧缓存的中断寄存器。当虚拟帧缓存驱动获取前台运行的客户操作系统发起的帧缓存操作请求时,可根据虚拟帧缓存的中断寄存器中存储的物理帧缓存中断信息判断当前物理帧缓存是否能够执行相关操作,当判断允许操作时,向物理帧缓存下发操作指令。
上述各种实施方式中,客户操作系统是否处于前台运行状态,决定了其是否能够基于虚拟帧缓存地址与物理帧缓存地址的映射关系对真正的物理帧缓存进行某些操作。通常在某一时刻仅有一个操作系统(主操作系统或者某一客户操作系统)在前台运行,也仅有该操作系统发起的帧缓存操作能够完全被执行,而其他后台运行的客户操作系统向其客户机的虚拟帧缓存发起的帧缓存操作也会返回操作成功的返回值,不会报错也不会影响前台操作系统的显示。
在一些实施方式中,还包括,获取所述物理帧缓存的物理帧缓存参数;当接收到运行于所述客户机的客户操作系统的帧缓存参数查询请求时,提供所述物理帧缓存参数。
具体实施时,可在客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系时将物理帧缓存的属性寄存器中的帧缓存参数同步至虚拟帧缓存的属性寄存器。帧缓存参数通常是只读并且不会改变的,因此可以设置客户机中运行于前台或者后台的操作系统均能够读取所述虚拟帧缓存的属性寄存器中的帧缓存参数,以获得物理帧缓存参数,进而能够向虚拟帧缓存发送符合参数要求的显示数据。
本实施例中建立客户机中的虚拟帧缓存地址与真实的物理帧缓存在用户空间的虚拟地址的映射关系,能够将运行于客户机的客户操作系统的显示数据基于地址映射关系发送至物理帧缓存,无需为虚拟帧缓存分配物理存储区,也省去存储区之间拷贝的时间和过程,因此能够减少主操作系统资源和存储资源的占用,提升虚拟化系统性能,缩短客户操作系统显示操作执行时间。本实施例还公开了可在客户机启动过程中及时建立虚拟帧缓存地址映射关系;分别公开了前台运行或者后台运行的客户操作系统的帧缓存实现方式,以及基于帧缓存寄存器设置对物理帧缓存进行操作的方法,确保前台运行的客户操作系统能够正常调用物理帧缓存,而后台运行的操作系统仍能读取物理帧缓存参数,但不会影响当前前台运行的操作系统对物理帧缓存的调用;同时,可将物理帧缓存参数提供给虚拟帧缓存驱动,以便客户操作系统能够在发起帧缓存操作时能够符合帧缓存参数要求。
实施例二:
基于同一发明构思,本发明实施例中还提供了一种帧缓存实现装置,由于这些装置解决问题的原理与帧缓存实现方法相似,因此这些装置的实施可以参见方法的实施,重复之处不再赘述。如图4所示,所述帧缓存实现装置200包括:确定模块201,用于确定显示设备对应的物理帧缓存地址映射至用户空间的虚拟地址;地址分配模块202,用于响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系。
在一些实施方式中,所述地址分配模块202具体用于,在所述客户机启动时,响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系。
在一些实施方式中,所述装置还包括:操作模块203,用于在所述地址分配模块202响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系之后:
当运行于所述客户机的客户操作系统对所述虚拟帧缓存进行操作,并且所述操作系统为前台运行的操作系统时,向所述物理帧缓存下发操作指令,并向客户操作系统返回操作成功的信息;当运行于所述客户机的客户操作系统对所述虚拟帧缓存进行操作,并且所述操作系统为后台运行的操作系统时,不允许向所述物理帧缓存下发操作指令,并向客户操作系统返回操作成功的信息。
在一些实施方式中,所述操作模块203具体用于,在所述地址分配模块202响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系之后,当运行于所述客户机的客户操作系统对所述虚拟帧缓存进行操作,并且所述操作系统为前台运行的操作系统时,通过设置所述虚拟帧缓存的寄存器,向所述物理帧缓存下发操作指令,并向客户操作系统返回操作成功的信息。
在一些实施方式中,所述地址分配模块202,还用于获取所述物理帧缓存的物理帧缓存参数;所述操作模块203,还用于当接收到运行于所述客户机的客户操作系统的帧缓存参数查询请求时,提供所述物理帧缓存参数。
实施例三:
基于同一发明构思,本发明实施例中还提供了一种电子设备,由于其原理与帧缓存实现方法相似,因此其实施可以参见方法的实施,重复之处不再赘述。如图5所示,所述电子设备300包括:显示设备301,存储器302,一个或多个处理器303;以及一个或多个模块,所述一个或多个模块被存储在所述存储器中,并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括用于执行任一上述方法中各个步骤的指令。
本实施例中,所述电子设备可以为手机、平板电脑、机器人或者其他智能设备。
实施例四:
基于同一发明构思,本发明实施例还提供了一种与包括显示设备的电子设备结合使用的帧缓存实现计算机程序产品,由于其原理与帧缓存实现方法相似,因此其实施可以参见方法的实施,重复之处不再赘述。所述计算机程序产品包括计算机可读的存储介质和内嵌于其中的计算机程序机制,所述计算机程序机制包括用于执行任一前述方法中各个步骤的指令。
为了描述的方便,以上所述装置的各部分以功能分为各种模块分别描述。当然,在实施本发明时可以把各模块或单元的功能在同一个或多个软件或硬件中实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

Claims (12)

1.一种帧缓存实现方法,其特征在于,所述方法包括:
确定显示设备对应的物理帧缓存地址映射至用户空间的虚拟地址;
响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系。
2.如权利要求1所述的方法,其特征在于,所述响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系,包括:
在所述客户机启动时,响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系。
3.如权利要求1所述的方法,其特征在于,在所述响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系之后,还包括:
当运行于所述客户机的客户操作系统对所述虚拟帧缓存进行操作,并且所述操作系统为前台运行的操作系统时,向所述物理帧缓存下发操作指令,并向客户操作系统返回操作成功的信息;
当运行于所述客户机的客户操作系统对所述虚拟帧缓存进行操作,并且所述操作系统为后台运行的操作系统时,不向所述物理帧缓存下发操作指令,并向客户操作系统返回操作成功的信息。
4.如权利要求3所述的方法,其特征在于,所述当运行于所述客户机的客户操作系统对所述虚拟帧缓存进行操作,并且所述操作系统为前台运行的操作系统时,向所述物理帧缓存下发操作指令,并向客户操作系统返回操作成功的信息,包括:
当运行于所述客户机的客户操作系统对所述虚拟帧缓存进行操作,并且所述操作系统为前台运行的操作系统时,通过设置所述虚拟帧缓存的寄存器,向所述物理帧缓存下发操作指令,并向客户操作系统返回操作成功的信息。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述物理帧缓存的物理帧缓存参数;
当接收到运行于所述客户机的客户操作系统的帧缓存参数查询请求时,提供所述物理帧缓存参数。
6.一种帧缓存实现装置,其特征在于,所述装置包括:
确定模块,用于确定显示设备对应的物理帧缓存地址映射至用户空间的虚拟地址;
地址分配模块,用于响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系。
7.如权利要求6所述的装置,其特征在于,
所述地址分配模块具体用于,在所述客户机启动时,响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系。
8.如权利要求6所述的装置,其特征在于,所述装置还包括:
操作模块,用于在所述地址分配模块响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系之后:
当运行于所述客户机的客户操作系统对所述虚拟帧缓存进行操作,并且所述操作系统为前台运行的操作系统时,向所述物理帧缓存下发操作指令,并向客户操作系统返回操作成功的信息;
当运行于所述客户机的客户操作系统对所述虚拟帧缓存进行操作,并且所述操作系统为后台运行的操作系统时,不允许向所述物理帧缓存下发操作指令,并向客户操作系统返回操作成功的信息。
9.如权利要求8所述的装置,其特征在于,
所述操作模块具体用于,在所述地址分配模块响应于客户机获取其虚拟帧缓存地址对应的存储区地址的请求,将所述虚拟地址分配给客户机,以使所述客户机建立所述客户机的虚拟帧缓存地址与所述虚拟地址的映射关系之后,当运行于所述客户机的客户操作系统对所述虚拟帧缓存进行操作,并且所述操作系统为前台运行的操作系统时,通过设置所述虚拟帧缓存的寄存器,向所述物理帧缓存下发操作指令,并向客户操作系统返回操作成功的信息。
10.如权利要求6所述的装置,其特征在于,
所述地址分配模块,还用于获取所述物理帧缓存的物理帧缓存参数;
所述操作模块,还用于当接收到运行于所述客户机的客户操作系统的帧缓存参数查询请求时,提供所述物理帧缓存参数。
11.一种电子设备,其特征在于,所述电子设备包括:
显示设备,存储器,一个或多个处理器;以及一个或多个模块,所述一个或多个模块被存储在所述存储器中,并被配置成由所述一个或多个处理器执行,所述一个或多个模块包括用于执行权利要求1-5中任一所述方法中各个步骤的指令。
12.一种与包括显示设备的电子设备结合使用的计算机程序产品,所述计算机程序产品包括计算机可读的存储介质和内嵌于其中的计算机程序机制,所述计算机程序机制包括用于执行权利要求1-5中任一所述方法中各个步骤的指令。
CN201680002798.0A 2016-12-07 2016-12-07 帧缓存实现方法、装置、电子设备和计算机程序产品 Active CN107077376B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/108925 WO2018103022A1 (zh) 2016-12-07 2016-12-07 帧缓存实现方法、装置、电子设备和计算机程序产品

Publications (2)

Publication Number Publication Date
CN107077376A true CN107077376A (zh) 2017-08-18
CN107077376B CN107077376B (zh) 2020-10-16

Family

ID=59624500

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680002798.0A Active CN107077376B (zh) 2016-12-07 2016-12-07 帧缓存实现方法、装置、电子设备和计算机程序产品

Country Status (2)

Country Link
CN (1) CN107077376B (zh)
WO (1) WO2018103022A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109074275A (zh) * 2018-03-15 2018-12-21 深圳前海达闼云端智能科技有限公司 硬件控制方法、装置、电子设备及计算机可读介质
CN110012346A (zh) * 2019-03-26 2019-07-12 合肥杰发科技有限公司 用户应用快速获取帧缓存中的帧数据的方法和装置、设备
CN117170883A (zh) * 2023-11-02 2023-12-05 西安芯云半导体技术有限公司 渲染显示的方法、装置、设备及存储介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110456994B (zh) * 2019-07-19 2023-03-10 南京芯驰半导体科技有限公司 一种远程显示系统及方法
CN115277924B (zh) * 2022-07-26 2024-05-17 努比亚技术有限公司 一种动态锁屏显示控制方法、设备及计算机可读存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093258A1 (en) * 2001-11-14 2003-05-15 Roman Fishstein Method and apparatus for efficient simulation of memory mapped device access
CN101013403A (zh) * 2006-02-01 2007-08-08 国际商业机器公司 用于缺失情况下的缓存命中冲突处理的方法和系统
CN101211270A (zh) * 2006-12-31 2008-07-02 联想(北京)有限公司 显卡、应用该显卡的虚拟机系统及显示处理方法
US20080168479A1 (en) * 2007-01-05 2008-07-10 Thomas Joseph Purtell Bypass Virtualization
CN101567849A (zh) * 2009-04-30 2009-10-28 炬才微电子(深圳)有限公司 一种数据缓存方法和装置
CN101241445B (zh) * 2007-02-08 2011-07-27 联想(北京)有限公司 虚拟机系统及其访问显卡的方法
CN102231138A (zh) * 2011-07-08 2011-11-02 上海交通大学 计算机内存数据准确采集系统及获取方法
CN103680461A (zh) * 2012-09-20 2014-03-26 广东新岸线计算机系统芯片有限公司 一种实现显示帧缓存切换的方法及显示系统
CN104750623A (zh) * 2013-12-31 2015-07-01 华为技术有限公司 一种内存虚拟化的方法及装置
CN104871144A (zh) * 2012-12-20 2015-08-26 高通股份有限公司 使用虚拟地址到物理地址跨页缓冲器的推测性寻址
CN105095094A (zh) * 2014-05-06 2015-11-25 华为技术有限公司 内存管理方法和设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102999393B (zh) * 2011-09-13 2016-03-02 联想(北京)有限公司 一种数据传输的方法、装置及电子设备

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093258A1 (en) * 2001-11-14 2003-05-15 Roman Fishstein Method and apparatus for efficient simulation of memory mapped device access
CN101013403A (zh) * 2006-02-01 2007-08-08 国际商业机器公司 用于缺失情况下的缓存命中冲突处理的方法和系统
CN101211270A (zh) * 2006-12-31 2008-07-02 联想(北京)有限公司 显卡、应用该显卡的虚拟机系统及显示处理方法
US20080168479A1 (en) * 2007-01-05 2008-07-10 Thomas Joseph Purtell Bypass Virtualization
CN101241445B (zh) * 2007-02-08 2011-07-27 联想(北京)有限公司 虚拟机系统及其访问显卡的方法
CN101567849A (zh) * 2009-04-30 2009-10-28 炬才微电子(深圳)有限公司 一种数据缓存方法和装置
CN102231138A (zh) * 2011-07-08 2011-11-02 上海交通大学 计算机内存数据准确采集系统及获取方法
CN103680461A (zh) * 2012-09-20 2014-03-26 广东新岸线计算机系统芯片有限公司 一种实现显示帧缓存切换的方法及显示系统
CN104871144A (zh) * 2012-12-20 2015-08-26 高通股份有限公司 使用虚拟地址到物理地址跨页缓冲器的推测性寻址
CN104750623A (zh) * 2013-12-31 2015-07-01 华为技术有限公司 一种内存虚拟化的方法及装置
CN105095094A (zh) * 2014-05-06 2015-11-25 华为技术有限公司 内存管理方法和设备

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109074275A (zh) * 2018-03-15 2018-12-21 深圳前海达闼云端智能科技有限公司 硬件控制方法、装置、电子设备及计算机可读介质
CN110012346A (zh) * 2019-03-26 2019-07-12 合肥杰发科技有限公司 用户应用快速获取帧缓存中的帧数据的方法和装置、设备
CN110012346B (zh) * 2019-03-26 2022-07-15 合肥杰发科技有限公司 用户应用快速获取帧缓存中的帧数据的方法和装置、设备
CN117170883A (zh) * 2023-11-02 2023-12-05 西安芯云半导体技术有限公司 渲染显示的方法、装置、设备及存储介质
CN117170883B (zh) * 2023-11-02 2024-01-30 西安芯云半导体技术有限公司 渲染显示的方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN107077376B (zh) 2020-10-16
WO2018103022A1 (zh) 2018-06-14

Similar Documents

Publication Publication Date Title
CN107077376A (zh) 帧缓存实现方法、装置、电子设备和计算机程序产品
CN103067425B (zh) 虚拟机创建方法、虚拟机管理系统及相关设备
EP3690648B1 (en) Resource scheduling method, scheduling server, cloud computing system and storage medium
CN104965757B (zh) 虚拟机热迁移的方法、虚拟机迁移管理装置及系统
JP3659062B2 (ja) 計算機システム
CN107526546B (zh) 一种Spark分布式计算数据处理方法及系统
TWI696952B (zh) 資源處理方法及裝置
CN109522087B (zh) 基于国产申威处理器的虚拟机构建方法和系统
CN106844007A (zh) 一种基于空间复用的虚拟化方法与系统
CN106575271A (zh) 管理存储设备
CN110427284A (zh) 数据处理方法、分布式系统、计算机系统和介质
CN107003892A (zh) Gpu虚拟化方法、装置、系统及电子设备、计算机程序产品
CN111813713B (zh) 数据加速运算处理方法、装置及计算机可读存储介质
CN104067243A (zh) 混合直写式/回写式高速缓冲存储策略管理器和相关系统和方法
KR20120087967A (ko) 응용 프로그램 화상의 표시 방법 및 장치
CN107003875A (zh) 用于多操作系统的显示方法、装置和电子设备
CN104123171A (zh) 基于numa架构的虚拟机迁移方法及系统
CN114580344A (zh) 测试激励生成方法、验证方法、验证系统及相关设备
US20180150232A1 (en) Memory overcommit by speculative fault
CN112328365A (zh) 一种虚拟机迁移方法、装置、设备及存储介质
CN110990133A (zh) 边缘计算服务迁移方法、装置、电子设备及介质
CN110069336A (zh) 内存资源分配方法、分配装置、芯片和存储装置
CN105117274A (zh) 虚拟机迁移方法和装置
CN105874431A (zh) 减少数据交换负载的计算系统以及相关的数据交换方法
CN106796531A (zh) 内核配置信息的管理方法、装置和电子设备

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