CN106293953B9 - 一种访问共享显示数据的方法及系统 - Google Patents

一种访问共享显示数据的方法及系统 Download PDF

Info

Publication number
CN106293953B9
CN106293953B9 CN201510309513.5A CN201510309513A CN106293953B9 CN 106293953 B9 CN106293953 B9 CN 106293953B9 CN 201510309513 A CN201510309513 A CN 201510309513A CN 106293953 B9 CN106293953 B9 CN 106293953B9
Authority
CN
China
Prior art keywords
data
cpu
gpu
memory
access
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.)
Active
Application number
CN201510309513.5A
Other languages
English (en)
Other versions
CN106293953B (zh
CN106293953A (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 CN201510309513.5A priority Critical patent/CN106293953B9/zh
Publication of CN106293953A publication Critical patent/CN106293953A/zh
Application granted granted Critical
Publication of CN106293953B publication Critical patent/CN106293953B/zh
Publication of CN106293953B9 publication Critical patent/CN106293953B9/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种访问共享显示数据的方法,属于图形加速驱动技术领域。其中,方法包括当操作系统非空闲时,将未被访问过的显示数据存放在CPU的内存中,所述存放的显示数据称为新数据;当操作系统空闲时,循环执行同步步骤;其中,所述同步步骤包括:根据CPU与GPU访问同一新数据的次数,将所述新数据转移到GPU的显存中存放或继续存放在CPU的内存中。本发明实现CPU和GPU对显示数据的高效访问,同时不影响整个系统的工作性能。

Description

一种访问共享显示数据的方法及系统
技术领域
本发明涉及图形加速驱动技术领域,具体涉及一种访问共享显示 数据的方法及系统。
背景技术
EXA是一套在Linux桌面环境下广泛使用的2D加速驱动架构,它 通过硬件驱动实现EXA定义的加速结构,进而实现GPU对Linux桌面 环境的2D加速。
GPU(Graphics Processing Unit,图形处理器)是一种专门在个 人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等) 上进行图像运算工作的微处理器。在现代桌面图形系统中,通常使用 GPU来加速桌面图形的绘制。PC的高性能GPU通常带有自己独立的 显存,GPU显存主要用来存储二维和三维的显示数据,以及最终显示 到屏幕上的帧缓冲区。
由于GPU和CPU是异构的,其寻址空间不统一,系统内存和GPU 显存之间的显示数据交互直接影响到了系统的图形性能。
当GPU和CPU都需要访问一组显示数据时,这组数据成为了共享 显示数据,在EXA图形系统加速驱动架构下,现有技术中对这种共享 显示数据的访问方案之一是将数据放置在CPU的系统内存中,当CPU 需要修改该数据时,直接在系统内存中修改;当GPU需要处理该数据 时,从系统内存中使用DMA(Direct Memory Access,直接内存访问) 接口读取,并将处理后的最终数据放入GPU显存的帧缓冲区中。这种 处理方式的缺点是:(1)GPU需要大量访问CPU的系统内存,而GPU 访问系统内存的速度慢于访问显存的速度,从而降低了GPU的工作效 率;(2)GPU占用了较多的系统内存带宽,降低了整个系统的访存性 能。
现有技术中的另一种访问方案是将数据放置在GPU的独立显存 中,当CPU需要修改该数据时,访问GPU的显存;当GPU需要处理该 数据时,则直接从其显存中获取数据,并将处理后的最终数据放入显 存的帧缓冲区中。这种处理方式的缺点是:(1)由于CPU准备数据的 时间较长,而GPU在CPU准备好数据之前无法工作,从而降低了GPU 的使用效率;(2)CPU访问显存速度缓慢,降低了系统的整体性能。
发明内容
(一)要解决的技术问题
本发明的目的在于提供一种访问共享显示数据的方法及系统,以 解决在现有EXA图形系统加速驱动架构下,CPU和GPU操作同一 显示数据时,将该显示数据仅放置在CPU内存或GPU显存中所引起 的远端访问性能较低下以及系统整体性能下降的问题。
(二)技术方案
为了实现上述目的,一方面,本发明提供一种访问共享显示数据 的方法,包括以下步骤:
当操作系统非空闲时,将未被访问过的显示数据存放在CPU的 内存中,所述存放的显示数据称为新数据;
当操作系统空闲时,循环执行同步步骤;其中,所述同步步骤包 括:根据CPU与GPU访问同一新数据的次数,将所述新数据转移到 GPU的显存中存放或继续存放在CPU的内存中。
优选地,所述根据CPU与GPU访问同一新数据的次数,将所述 新数据转移到GPU的显存中存放或继续存放在CPU的内存中包括:
针对任意新数据,分别记录CPU和GPU访问所述新数据的次数;
根据记录的CPU访问所述新数据的次数和GPU访问所述新数据 的次数确定将所述新数据转移到GPU的显存中或是继续存放在CPU 的内存中,其中,所述确定过转移或继续存放的新数据称为旧数据;
优选地,将GPU对所有新数据的访问次数[M1,M2,…,Mn]以及 CPU对所有新数据的访问次数[N1,N2,…,Nn]均置零,其中n表示新 数据的个数;
所述根据CPU与GPU访问同一新数据的次数,将所述新数据转 移到GPU的显存中存放或继续存放在CPU的内存中包括:
针对第k个新数据,GPU每访问一次内存中的所述第k个新数 据,对应的Mk加1,CPU每访问一次内存中的所述第k个新数据, 对应的Nk加1;其中,k=1,2….n;
当第k个新数据被GPU和CPU访问的次数之和Mk+Nk超过预 设访问次数阈值时,判断Mk/Nk是否超过第一比值阈值,若超过所 述第一比值阈值,则将第k个新数据从CPU的内存转移到GPU的显 存中存放,若未超过第一比值阈值,则第k个新数据继续存放在CPU 的内存中。
另一方面,本发明还提供了一种访问共享显示数据的系统,包括:
初始化模块,用于在操作系统非空闲时,将未被访问过的显示数 据存放在CPU的内存中,所述存放的显示数据称为新数据;
同步模块,用于在操作系统空闲时循环执行同步子模块,所述同 步子模块,用于根据CPU与GPU访问同一新数据的次数,将所述新 数据转移到GPU的显存中存放或继续存放在CPU的内存中。
优选地,所述同步子模块包括第一同步单元;
所述第一同步单元,用于针对任意新数据,分别记录CPU和GPU 访问所述新数据的次数;根据记录的CPU访问所述新数据的次数和 GPU访问所述新数据的次数确定将所述新数据转移到GPU的显存中 或是继续存放在CPU的内存中,其中,所述确定过转移或继续存放 的新数据称为旧数据。
优选地,所述初始化模块还用于将GPU对所有新数据的访问次 数[M1,M2,…,Mn]以及CPU对所有新数据的访问次数[N1,N2,…,Nn] 均置零,其中n表示新数据的个数;
所述同步子模块包括:第二同步单元;
所述第二同步单元,用于针对第k个新数据,GPU每访问一次内存中 的所述第k个新数据,对应的Mk加1,CPU每访问一次内存中的所述 第k个新数据,对应的Nk加1;其中,k=1,2….n;当第k个新数据被 GPU和CPU访问的次数之和Mk+Nk超过预设访问次数阈值时,判断 Mk/Nk是否超过第一比值阈值,若超过所述第一比值阈值,则将第k 个新数据从CPU的内存转移到GPU的显存中存放,若未超过第一比值 阈值,则第k个新数据继续存放在CPU的内存中。
(三)有益效果
本发明根据CPU与GPU对显示数据的访问次数等统计信息,选 择同步策略,将显示数据放置在CPU的内存内或GPU的显存内,实 现CPU和GPU对显示数据的高效访问,同时不影响整个系统的工作 性能。
附图说明
图1为本发明实施例中CPU与GPU访问共享显示数据的原理图;
图2为本发明实施例中提供的一种CPU与GPU访问共享显示数据 的方法的流程图;
图3为本发明实施例中提供的一种CPU与GPU访问共享显示数据 方法的步骤S2的详细流程图;
图4为本发明实施例中提供的一种访问共享显示数据的系统的结 构示意图;
图5为本发明实施例中提供的一种访问共享显示数据的系统的另 一结构示意图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实 施例,对本发明的具体实施方式作进一步详细描述。
图1为本发明实施例CPU与GPU访问共享显示数据的原理图。参 照图1所示,为实现在现有Linux操作系统的EXA驱动架构下,CPU和 GPU对共享显示数据的高效访问,本实施例首先需要在CPU内存和 GPU显存内为每个显示数据设置了大小相同的数据区域,用于存储显 示数据,数据区域两两一组,一组数据区域对应一个显示数据,例如, 对第一个显示数据,CPU内存和GPU显存内均设置有大小相同的数据 区域1,对第二个显示数据,CPU内存和GPU显存内均设置有大小相 同的数据区域2,等等。每个数据区域的指针都保存在同一个指针数 组中,并利用哈希算法对指针所指示的数据区域进行定位,以提高数 据定位速度。
优选方案中,本实施例还设置有监测线程和同步线程,监测线程 用于监测并记录CPU和GPU对每个显示数据的访问次数和每次访问 的数据量大小,并能根据监测和记录的信息,进行阈值判断和数据是 否变化的判断,对已被访问的显示数据设定优先级;同步线程,用于 根据所述监测线程所监测的信息以及对显示数据制定的优先级对显 示数据在CPU系统内存和GPU显存之间进行转移或者备份。
图2为本发明实施例CPU与GPU访问共享显示数据的方法流程 图,参照图2所示,本实施例方法包括以下步骤:
S1、当操作系统非空闲或启动时,将未被访问过的显示数据存放 在内存中,所述未被访问过的显示数据称为新数据,将图形处理器 GPU对所有新数据的访问次数[M1,M2,…,Mn](即Mn表示GPU对 第n个新数据的访问次数)以及CPU对所有新数据的访问次数 [N1,N2,…,Nn](即Nn表示GPU对第n个新数据的访问次数)均置 零,其中n表示新数据的个数;
本步骤中,考虑到GPU远程访问内存的速度比CPU远程访问显 存的速度快,因此,默认地先把所有显示数据都存储在CPU系统的 内存中,以提高GPU和CPU访问共享数据的初始访问效率。
S2、当Linux操作系统空闲时,循环执行同步步骤,当操作系统 非空闲时返回步骤S1。
参考图3所示,所述同步步骤S2包括:
步骤S21:根据CPU与GPU访问同一新数据的次数,将新数据转 移到GPU的显存中存放或继续存放在CPU的内存中。
该S21实现方式可以为:针对任意新数据,分别记录CPU和GPU 访问所述新数据的次数;
具体而言,GPU每访问一次内存中的所述第k个新数据,监测 线程将对应的Mk加1,CPU每访问一次内存中的所述第k个新数据, 监测线程将对应的Nk加1,其中,k=1,2,…,n,即k可以是任意一个 n的取值;
根据记录的CPU访问所述新数据的次数和GPU访问所述新数据 的次数确定将所述新数据转移到GPU的显存中或是继续存放在CPU 的内存中,其中,所述确定过转移或继续存放的新数据称为旧数据。
具体而言,当第k个新数据被GPU和CPU访问的次数之和 Mk+Nk超过预设访问次数阈值时,监测线程判断Mk/Nk是否超过所 述第一比值阈值,若超过第一比值阈值,则同步线程将第k个新数据 从CPU的内存转移到GPU的显存中存放,若未超过第一比值阈值, 则第k个新数据继续存放在CPU的内存中。
本步骤是为了通过统计新数据被访问的次数,实现将总访问量达 到一定次数(说明CPU和GPU对该显示数据的总访问次数已达到影 响系统整体工作效率和整体性能的程度,需要关注其所处存储位置是 否需要被调整),且GPU访问次数多于CPU访问次数达一定程度的 显示数据从默认的内存转移到显存中进行存储,避免GPU远程访问 此类数据所造成的效率低下和系统性能降低。在实现此策略的过程 中,还提供了下述优选方案S22,通过对数据进行优先级的设置及排 序,以区分新、旧数据,也供在后续可能要执行的进一步优选的同步 策略中使用。其中第一比值阈值的设定根据操作系统软、硬件配置而 定,以不降低系统整体工作效率和整体性能为准。
步骤S22:新数据被访问的过程中,监测线程将还根据对各新数 据的访问统计信息,对各新数据进行优先级的排序;依次按照所述优 先级从高到低的次序,确定各次序上的旧数据是是否需要转移。
其中,访问统计信息包括对新数据的访问次数和每次访问的数据 大小,监测线程在排序时首先根据访问次数与访问数据大小的加权和 计算新数据的总被访问数据量,从而确定被访问数据的优先级。例如, 数据a的总被访问数据量=Σ(b×c),c表示数据a中数据量b被访 问的次数。
上述确定各次序上的旧数据是是否需要转移具体为:判断当前次 序中的第k个旧数据被CPU和GPU分别访问的次数比值是否超过第 二比值阈值,若超过,则将第k个旧数据在内存中存放,否则将第k 个旧数据在显存中存放;
执行本步骤的目的是,在旧数据被CPU与GPU访问的次数比例 有变化且满足一定条件时,对其所处存储位置进行重新调整,实现新 的访问策略。该第二比值阈值的设定根据操作系统软、硬件配置而定, 以不降低系统整体工作效率和整体性能为准,可以是与第一比值阈值 的倒数为不同的数值。
具体而言,在实际操作中,为了优先保证CPU的工作需求,在 不考虑数据从显存转移至内存过程中的资源损耗的理想情况下,可将 第一比值阈值与第二比值阈值设置为互为倒数;而若考虑到数据转移 过程这一行为本身也需要消耗系统资源,可将第二比值阈值设置为与 第一比值阈值的倒数之间存在一定差值,此差值设置的原则是要保证 数据转移之后所节省的系统资源大于数据转移过程所消耗的系统资 源,以保证高效访问且不影响系统性能。
需要说明的是,在本步骤中,系统的空闲时间长短不确定,为了 尽可能的提高系统的工作效率,较佳的方法就是按照已经确定的优先 级别,优先对级别高的显示数据的存放位置进行分配,也即校正的过 程,优先级别高的显示数据存放位置的校正,能够对系统整体工作效 率和整体性能带来较大的影响。在系统空闲时间不充足的情况下,优 先级别低的显示数据存放位置即使不能得到校正,因为该显示数据被 访问的次数和每次访问的数据量不大,所以也不会对统整体工作效率 和整体性能带来实质性影响。
步骤S23:按照所述优先级从高到低的次序,判断当前次序中的 旧数据k是否满足如下条件:若被GPU访问的次数Mk大于GPU访 问阈值,被CPU访问的次数Nk大于CPU访问阈值,且Mk与Nk 的差值不超过差值阈值;若满足,则将第k个旧数据在另一存放位置 进行备份,其中,被访问的次数多的新数据属于优先级别高的。
本步骤中,CPU和GPU对新的显示数据的访问次数满足本步骤的 判断标准则说明CPU和GPU对该显示数据的总访问次数已达到影响 系统整体工作效率和整体性能的程度,以及CPU和GPU对该显示数据 的总访问次数接近;此时,将该显示数据仅放置在系统内存中或仅放 置在GPU显存中,都会造成一个处理器的远端访问,对系统整体工作 效率和整体性能带来不良影响,因此本步骤通过同步线程将该显示数 据在系统内存和GPU显存内进行同步备份,系统内存和GPU显存内同 时存放该显示数据,CPU通过访问系统内存来访问该显示数据,GPU 通过访问GPU显存来访问该显示数据。
已访问的显示数据进行再次分配时在系统内存和GPU显存内同 步备份的情况下,在显示数据访问过程中,如果该显示数据在系统内 存或GPU显存中其中一个数据区域内发生变化,另一个数据区域内没 有同步发生变化,此时如果仍然是CPU通过访问系统内存来访问该显 示数据,GPU通过访问GPU显存来访问该显示数据的方式,则会造成 其中一个处理器所访问的显示数据为错误数据,为了避免这种失误出 现,本步骤在其中一个数据区域内的显示数据发生变化时,将未被及 时同步的数据区域内的显示数据删除,以避免被访问,此时CPU和 GPU均访问已发生变化的数据区域内的显示数据,删除显存中对应的 备份数据后,GPU通过直接内存访问DMA接口访问内存中发生变化 的旧数据,可以提高访问速率。被删除的显示数据,待到系统空闲时 即可根据所对应数据区域内显示数据的变化由同步线程进行同步。
需要说明的是,本步骤S2都是在系统空闲的时候才执行,优选 地,当系统空闲时,首先执行步骤S21,当还有空闲时间时再执行步 骤S22,仍有空闲时再执行步骤S23,一次循环执行完之后还有空闲 时间则返回步骤S21开始下一次循环。又或者,在执行S21时,同时 适当的执行S22的优先级排序等。即,待到下次系统空闲到来时,不 对上次系统空闲时未完成的进程进行继续处理,而是按照上述处理过 程重新开始显示数据存放位置的分配,以利于显示数据存放位置的及 时更新。
上述方法中是结合同步进程和监控进程为执行主体为例进行描 述的,但并不仅限于同步进程和监控进行才能够完成,例如可以控制 CPU和GPU访存的其他应用程序或系统,如Linux系统等,还可以 是可以运行该其他应用程序或系统的设备,如PC机等。
与上述方法对应地,本发明还提供了一种访问共享显示数据的系 统,如图4所示,包括:初始化模块41,同步模块42。
初始化模块41,初始化模块,用于在操作系统启动或非空闲时, 将未被访问过的显示数据存放在CPU的内存中,存放的显示数据称 为新数据;
同步模块42,用于在操作系统空闲时循环执行同步子模块420, 同步子模块,用于根据CPU与GPU访问同一新数据的次数,将新数 据转移到GPU的显存中存放或继续存放在CPU的内存中。
优选地,如图5所示,同步子模块420包括第一同步单元4201 和/第二同步单元4202;
第一同步单元4201,用于针对任意新数据,分别记录CPU和GPU 访问新数据的次数;根据记录的CPU访问新数据的次数和GPU访问 新数据的次数确定将新数据转移到GPU的显存中或是继续存放在 CPU的内存中,其中,确定过转移或继续存放的新数据称为旧数据。
其中,初始化模块41还用于将GPU对所有新数据的访问次数 [M1,M2,…,Mn]以及CPU对所有新数据的访问次数[N1,N2,…,Nn]均 置零,其中n表示新数据的个数;
第二同步单元4202,用于针对第k个新数据,GPU每访问一次 内存中的第k个新数据,对应的Mk加1,CPU每访问一次内存中的 第k个新数据,对应的Nk加1;其中,k=1,2….n;当第k个新数 据被GPU和CPU访问的次数之和Mk+Nk超过预设访问次数阈值时, 判断Mk/Nk是否超过第一比值阈值,若超过第一比值阈值,则将第k 个新数据从CPU的内存转移到GPU的显存中存放,若未超过第一比 值阈值,则第k个新数据继续存放在CPU的内存中。
优选地,同步子模块420还包括:
排序单元4203,用于根据各新数据的访问统计信息,对各新数 据进行优先级的排序;
转移单元4204,用于依次按照优先级从高到低的次序,确定各 次序上的旧数据是是否需要转移。
具体地,转移单元4204,具体用于判断当前次序中的第k个旧 数据被CPU和GPU分别访问的次数比值是否超过第二比值阈值,若 超过,则将第k个旧数据在内存中存放,否则将第k个旧数据在显存 中存放。
同步子模块420还包括备份单元4205;
备份单元4205,用于按照优先级从高到低的次序,判断当前次 序中的旧数据k是否满足如下条件:
被GPU访问的次数Mk大于GPU访问阈值,
被CPU访问的次数Nk大于CPU访问阈值,
Mk与Nk的差值不超过差值阈值;
若满足,则将第k个旧数据在另一存放位置进行备份。
备份单元4205,还用于在备份后,内存和显存中有一方的旧数 据发生变化时,将另一方中对应的备份数据删除。
备份单元4205,还用于在删除显存中对应的备份数据后,使GPU 通过直接内存访问DMA接口访问内存中发生变化的旧数据。
优选方案中,本实施例提供的该系统还包括:
数据区域分配模块,用于在初始化模块执行初始化步骤之前,在 内存和显存中分配同样大小的两个数据区域,且每个数据区域的指针 都保存在同一个指针数组中。
优选方案下,所述同步模块420的功能由内存中建立的监测线程 和同步线程来执行,其中所有的,计数、阈值判断,数据是否变化的 判断,以及优先级排序的步骤都由监测线程来执行,其中的存放位置 转移,以及备份步骤都由同步线程来执行。
由以上实施例可以看出,本发明根据CPU与GPU对显示数据的访 问次数等统计信息,选择不同的同步策略,将显示数仅放置在系统内 存内或GPU显存内,或同步备份在系统内存内和GPU显存内,实现 CPU和GPU对显示数据的高效访问,同时不影响整个系统的工作性 能。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领 域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以 做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

Claims (15)

1.一种访问共享显示数据的方法,其特征在于,该方法包括:
当操作系统非空闲时,将未被访问过的显示数据存放在CPU的 内存中,所述存放的显示数据称为新数据;
当操作系统空闲时,循环执行同步步骤;其中,所述同步步骤包 括:根据CPU与GPU访问同一新数据的次数,将所述新数据转移到 GPU的显存中存放或继续存放在CPU的内存中;
将GPU对所有新数据的访问次数[M1,M2,…,Mn]以及CPU对所 有新数据的访问次数[N1,N2,…,Nn]均置零,其中n表示新数据的个 数;
所述根据CPU与GPU访问同一新数据的次数,将所述新数据转 移到GPU的显存中存放或继续存放在CPU的内存中包括:
针对第k个新数据,GPU每访问一次内存中的所述第k个新数 据,对应的Mk加1,CPU每访问一次内存中的所述第k个新数据, 对应的Nk加1;其中,k=1,2….n;
当第k个新数据被GPU和CPU访问的次数之和Mk+Nk超过预 设访问次数阈值时,判断Mk/Nk是否超过第一比值阈值,若超过所 述第一比值阈值,则将第k个新数据从CPU的内存转移到GPU的显 存中存放,若未超过第一比值阈值,则第k个新数据继续存放在CPU 的内存中。
2.如权利要求1所述的方法,其特征在于,所述根据CPU与 GPU访问同一新数据的次数,将所述新数据转移到GPU的显存中存 放或继续存放在CPU的内存中包括:
针对任意新数据,分别记录CPU和GPU访问所述新数据的次数;
根据记录的CPU访问所述新数据的次数和GPU访问所述新数据 的次数确定将所述新数据转移到GPU的显存中或是继续存放在CPU 的内存中,其中,所述确定过转移或继续存放的新数据称为旧数据。
3.如权利要求1所述的方法,其特征在于,所述同步步骤还包 括:
根据各新数据的访问统计信息,对各新数据进行优先级的排序;
依次按照所述优先级从高到低的次序,确定各次序上的旧数据是 是否需要转移。
4.根据权利要求3所述的方法,其特征在于,所述确定各次序 上的旧数据是否需要转移包括:
判断当前次序中的第k个旧数据被CPU和GPU分别访问的次数 比值是否超过第二比值阈值,若超过,则将第k个旧数据在内存中存 放,否则将第k个旧数据在显存中存放。
5.如权利要求4所述的方法,其特征在于,所述同步步骤还包 括:
按照所述优先级从高到低的次序,判断当前次序中的旧数据k是 否满足如下条件:
被GPU访问的次数Mk大于GPU访问阈值,
被CPU访问的次数Nk大于CPU访问阈值,
Mk与Nk的差值不超过差值阈值;
若满足,则将第k个旧数据在另一存放位置进行备份。
6.如权利要求5所述的方法,其特征在于,所述同步步骤还包 括:
在备份后,若内存和显存中有一方的旧数据发生变化,则将另一 方中对应的备份数据删除。
7.如权利要求6所述的方法,其特征在于,所述同步步骤还包 括:在删除显存中对应的备份数据后,GPU通过直接内存访问DMA 接口访问内存中发生变化的旧数据。
8.如权利要求1或2所述的方法,其特征在于,该方法还包括:
在内存和显存中分配同样大小的两个数据区域,且每个数据区域 的指针都保存在同一个指针数组中。
9.一种访问共享显示数据的系统,其特征在于,包括:
初始化模块,用于在操作系统非空闲时,将未被访问过的显示数 据存放在CPU的内存中,所述存放的显示数据称为新数据;
同步模块,用于在操作系统空闲时循环执行同步子模块,所述同 步子模块,用于根据CPU与GPU访问同一新数据的次数,将所述新 数据转移到GPU的显存中存放或继续存放在CPU的内存中;
所述初始化模块还用于将GPU对所有新数据的访问次数 [M1,M2,…,Mn]以及CPU对所有新数据的访问次数[N1,N2,…,Nn]均 置零,其中n表示新数据的个数;
所述同步子模块包括:第二同步单元;
所述第二同步单元,用于针对第k个新数据,GPU每访问一次 内存中的所述第k个新数据,对应的Mk加1,CPU每访问一次内存 中的所述第k个新数据,对应的Nk加1;其中,k=1,2….n;当第k 个新数据被GPU和CPU访问的次数之和Mk+Nk超过预设访问次数 阈值时,判断Mk/Nk是否超过第一比值阈值,若超过所述第一比值 阈值,则将第k个新数据从CPU的内存转移到GPU的显存中存放, 若未超过第一比值阈值,则第k个新数据继续存放在CPU的内存中。
10.如权利要求9所述的访问共享显示数据的系统,其特征在于, 所述同步子模块包括第一同步单元;
所述第一同步单元,用于针对任意新数据,分别记录CPU和GPU 访问所述新数据的次数;根据记录的CPU访问所述新数据的次数和 GPU访问所述新数据的次数确定将所述新数据转移到GPU的显存中 或是继续存放在CPU的内存中,其中,所述确定过转移或继续存放 的新数据称为旧数据。
11.如权利要求9所述的访问共享显示数据的系统,其特征在于, 所述同步子模块还包括:
排序单元,用于根据各新数据的访问统计信息,对各新数据进行 优先级的排序;
转移单元,用于依次按照所述优先级从高到低的次序,确定各次 序上的旧数据是是否需要转移。
12.如权利要求11所述的访问共享显示数据的系统,其特征在 于,所述转移单元,具体用于判断当前次序中的第k个旧数据被CPU 和GPU分别访问的次数比值是否超过第二比值阈值,若超过,则将 第k个旧数据在内存中存放,否则将第k个旧数据在显存中存放。
13.如权利要求12所述的访问共享显示数据的系统,其特征在 于,所述同步子模块还包括备份单元;
所述备份单元,用于按照所述优先级从高到低的次序,判断当前 次序中的旧数据k是否满足如下条件:
被GPU访问的次数Mk大于GPU访问阈值,
被CPU访问的次数Nk大于CPU访问阈值,
Mk与Nk的差值不超过差值阈值;
若满足,则将第k个旧数据在另一存放位置进行备份。
14.如权利要求13所述的访问共享显示数据的系统,其特征在 于,所述备份单元,还用于在备份后,内存和显存中有一方的旧数据 发生变化时,将另一方中对应的备份数据删除;以及在删除显存中 对应的备份数据后,使GPU通过直接内存访问DMA接口访问内存 中发生变化的旧数据。
15.如权利要求9或10所述的访问共享显示数据的系统,其特 征在于,还包括:
数据区域分配模块,用于在初始化模块执行初始化步骤之前,在 内存和显存中分配同样大小的两个数据区域,且每个数据区域的指针 都保存在同一个指针数组中。
CN201510309513.5A 2015-06-08 2015-06-08 一种访问共享显示数据的方法及系统 Active CN106293953B9 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510309513.5A CN106293953B9 (zh) 2015-06-08 2015-06-08 一种访问共享显示数据的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510309513.5A CN106293953B9 (zh) 2015-06-08 2015-06-08 一种访问共享显示数据的方法及系统

Publications (3)

Publication Number Publication Date
CN106293953A CN106293953A (zh) 2017-01-04
CN106293953B CN106293953B (zh) 2019-05-24
CN106293953B9 true CN106293953B9 (zh) 2019-06-18

Family

ID=57659644

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510309513.5A Active CN106293953B9 (zh) 2015-06-08 2015-06-08 一种访问共享显示数据的方法及系统

Country Status (1)

Country Link
CN (1) CN106293953B9 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122209A (zh) * 2017-04-18 2017-09-01 努比亚技术有限公司 终端启动的加速装置及方法
CN109144714A (zh) * 2017-06-19 2019-01-04 中兴通讯股份有限公司 内存管理方法及装置
CN109918233B (zh) * 2019-03-06 2021-02-26 珠海金山网络游戏科技有限公司 一种数据处理方法、装置、计算设备及存储介质
CN110012252A (zh) * 2019-04-09 2019-07-12 北京奥特贝睿科技有限公司 一种适用于自主驾驶仿真平台的快速图像存储方法以及系统
CN110442389B (zh) * 2019-08-07 2024-01-09 北京技德系统技术有限公司 一种多桌面环境共享使用gpu的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102662641A (zh) * 2012-04-16 2012-09-12 浙江工业大学 一种基于cuda的种子分布数据并行获取方法
US8610732B2 (en) * 2008-12-11 2013-12-17 Nvidia Corporation System and method for video memory usage for general system application
CN103956991A (zh) * 2014-04-10 2014-07-30 北京遥测技术研究所 一种基于cpu/gpu异构平台的fir滤波并行实现方法
CN104156322A (zh) * 2014-08-05 2014-11-19 华为技术有限公司 一种缓存管理方法及缓存管理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8610732B2 (en) * 2008-12-11 2013-12-17 Nvidia Corporation System and method for video memory usage for general system application
CN102662641A (zh) * 2012-04-16 2012-09-12 浙江工业大学 一种基于cuda的种子分布数据并行获取方法
CN103956991A (zh) * 2014-04-10 2014-07-30 北京遥测技术研究所 一种基于cpu/gpu异构平台的fir滤波并行实现方法
CN104156322A (zh) * 2014-08-05 2014-11-19 华为技术有限公司 一种缓存管理方法及缓存管理装置

Also Published As

Publication number Publication date
CN106293953B (zh) 2019-05-24
CN106293953A (zh) 2017-01-04

Similar Documents

Publication Publication Date Title
CN106293953B9 (zh) 一种访问共享显示数据的方法及系统
CN105205014B (zh) 一种数据存储方法和装置
US20190220418A1 (en) Memory Management Method and Apparatus
CN101650698B (zh) 直接存储器访问的实现方法
CA2408481C (en) Autonomic reallocation of memory among buffer pools
KR102147356B1 (ko) 캐시 메모리 시스템 및 그 동작방법
CN103885728A (zh) 一种基于固态盘的磁盘缓存系统
CN107870732B (zh) 从固态存储设备冲刷页面的方法和设备
CN101231619A (zh) 一种基于非连续页的动态内存管理方法
CN106951488B (zh) 一种日志记录方法和装置
CN105808449B (zh) 一种用于虚拟机的虚拟存储映像版本管理方法和系统
CN106649139B (zh) 一种基于多个缓存的数据淘汰方法及装置
CN107562851B (zh) 一种数据的更新方法、装置及电子设备
CN104160420A (zh) 在图形处理单元上执行图形和非图形应用
US11940915B2 (en) Cache allocation method and device, storage medium, and electronic device
CN106294205A (zh) 缓存数据处理方法及装置
US20180357166A1 (en) Method and apparatus for system resource management
CN105450986B (zh) 一种Linux下视频处理方法
CN107077376A (zh) 帧缓存实现方法、装置、电子设备和计算机程序产品
CN110059024B (zh) 一种内存空间数据缓存方法及装置
CN108733585A (zh) 缓存系统及相关方法
US8341368B2 (en) Automatic reallocation of structured external storage structures
CN106201918A (zh) 一种基于大数据量和大规模缓存快速释放的方法和系统
CN117473011A (zh) 数据同步方法、装置以及混合缓存系统
CN103874988A (zh) 对高速缓存进行可编程分区

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CI03 Correction of invention patent
CI03 Correction of invention patent

Correction item: Claims

Correct: Zheng Que

False: Cuo Wu

Number: 21-02

Page: Quan Wen

Volume: 35

CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee after: Loongson Zhongke Technology Co.,Ltd.

Address before: 100095 Building 2, Longxin Industrial Park, Zhongguancun environmental protection technology demonstration park, Haidian District, Beijing

Patentee before: LOONGSON TECHNOLOGY Corp.,Ltd.