CN102841671A - 支持耦连到图形控制器的自刷新显示设备的方法和装置 - Google Patents
支持耦连到图形控制器的自刷新显示设备的方法和装置 Download PDFInfo
- Publication number
- CN102841671A CN102841671A CN2012100827918A CN201210082791A CN102841671A CN 102841671 A CN102841671 A CN 102841671A CN 2012100827918 A CN2012100827918 A CN 2012100827918A CN 201210082791 A CN201210082791 A CN 201210082791A CN 102841671 A CN102841671 A CN 102841671A
- Authority
- CN
- China
- Prior art keywords
- gpu
- data object
- display device
- mutual exclusion
- exclusion mechanism
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/001—Arbitration of resources in a display system, e.g. control of access to frame buffer by video controller and/or main processor
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/363—Graphics controllers
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/021—Power management, e.g. power saving
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/026—Arrangements or methods related to booting a display
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/027—Arrangements or methods related to powering off a display
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2352/00—Parallel handling of streams of display data
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/06—Use of more than one graphics processor to process data before displaying to one or more screens
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/08—Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/18—Use of a frame buffer in a display terminal, inclusive of the display panel
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Multimedia (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种用于支持耦连到图形控制器的自刷新显示设备的方法和装置。自刷新显示设备具有基于从本地帧缓冲器生成的视频信号驱动显示的能力。当显示设备在面板自刷新模式下操作时,耦连到所述显示设备的所述图形控制器可以任选地置于一个或多个省电状态。当图形控制器在深度休眠状态下时,与图形控制器关联的存储器中存储的数据对象可以在另一存储器子系统中被赋予别名,所述另一存储器子系统可访问该系统中执行的操作系统、图形用户界面或应用程序。所披露的技术利用了虚拟存储器指针,其可以在一个或多个虚拟存储器页表中更新为指向与图形控制器关联的存储器或替换的存储器别名的指针。
Description
技术领域
本发明总体上涉及显示系统,并且,具体地说,涉及用于控制耦连到图形控制器的自刷新显示设备的方法和装置。
背景技术
计算机系统典型地包括耦连到图形控制器的某种显示设备,例如液晶显示设备(LCD)。在正常操作期间,所述图形控制器生成视频信号,基于在所述图形控制器中生成的定时信息通过从帧缓存器扫描出像素数据将所述视频信号传输到显示设备。某些最近设计的显示设备具有自刷新能力,其中所述显示设备包括本地控制器,经配置以独立于所述图形控制器由静态的、缓存的数字视频帧生成视频信号。当处于这种自刷新模式时,所述视频信号由所述本地控制器驱动,因此可以关闭部分图形控制器以减小计算机系统的整体功耗。一旦处于自刷新模式,当将被显示的图像需要更新时,控制可被转移回所述图形控制器,以使得基于一组新的像素数据生成新的视频信号。
关断部分图形控制器的一个缺点在于,运行在主机计算机系统上的操作系统或应用程序可被配置为访问与图形控制器相关的存储器存储的数据对象。如果图形控制器被关闭,诸如当显示设备工作在自刷新模式下时,操作系统或应用程序可能会失去对存储在图形存储器中的对象的访问。这会导致操作系统或应用程序崩溃。
如前述,本技术领域所需要的是,一种用于提供对于图形控制器相关的存储器中存储的数据对象进行访问的改进技术。
发明内容
本发明的一个实施例提出了一种用于控制耦连到自刷新显示设备的图形处理单元的方法。所述方法包括如下步骤:检测表示显示设备被设置为进入自刷新模式的触发事件;响应于检测所述触发事件,确定一组互斥机制中的任意互斥机制是否绑定于与所述图形处理单元关联的存储器中存储的数据对象。该方法还包括下列步骤,如果至少一个互斥机制绑定到数据对象,则延迟转变到深度休眠状态,或如果没有互斥机制绑定到数据对象,则进入深度休眠状态。
本公开技术的一个优势在于,数据对象的物理存储位置对主机系统上执行的操作系统或应用程序是透明的。用来标识物理存储位置的指针与对于数据对象是否在图形存储器或系统存储器驻留的应用程序是相同的。此外,在图形控制器被关闭时可以跟踪数据对象的状态,以确定一旦图形控制器被唤醒时图形控制器是否需要更新图形存储器中的数据对象,并恢复处理图形数据以生成视频信号用于在显示设备上显示。因此,转换进入并退出自刷新模式对于被配置用于访问数据对象的操作系统和应用程序来说是透明的。
附图说明
因此,可以详细地理解上述本发明的特征,并且可以参考实施例得到对如上面所概括的本发明更具体的描述,其中一些实施例在附图中示出。然而,应当注意的是,附图仅用于示意性地表示本发明的典型实施例,因此不应被认为是对实施例范围的限制。本发明可以具有其他等效的实施方式。
图1为示出计算机系统的框图,该计算机系统经配置以实现本发明一个或多个方面;
图2A示出根据本发明的一个实施例的耦连到具有自刷新能力的显示设备的并行处理子系统;
图2B示出根据本发明的一个实施例的通信路径,所述通信路径实现嵌入式显示端口接口;
图2C示出根据本发明的一个实施例的数字视频信号的概念性示意图,所述数字视频信号由GPU生成用于通过通信路径传送;
图2D是根据本发明的一个实施例的次级数据包的示意图,所述次级数据包在图2C的数字视频信号的水平消隐期被插入。
图3示出根据本发明一个实施例的,位于并行处理子系统与计算机系统的各种组件之间的通信信号;
图4示出根据本发明的一个实施例的具有自刷新能力的显示设备的状态图;
图5示出根据本发明的一个实施例的GPU的状态图,所述GPU经配置以控制显示装置转换进入和退出面板自刷新模式;
图6示出根据本发明一个实施例的,由计算机系统100实现的存储器管理算法;
图7A-7B示出根据本发明的一个实施例的,用于更新计算机系统的页表中的页表条目的过程的概念性示意图;
图8阐述根据本发明一个实施例的,当图形处理单元处于深度休眠状态时,提供对于图形处理单元相关的数据对象进行访问的应用程序的方法流程图。
具体实施方式
在下面的描述中,将阐述大量的详细内容以提供对本发明更深入的理解。然而,本技术领域的技术人员应该清楚,本发明可以在没有一个或多个这些具体细节的情况下得以实施。在其他实例中,没有描述公知的特征以避免对本发明造成混淆。
系统概述
图1示出了经配置以实现本发明一个或多个方面的计算机系统100的框图。所述计算机系统100包括中央处理单元(CPU)102和系统存储器104,所述系统存储器104通过包括存储器桥105的内部连接路径通信。存储器桥105,其可以是诸如北桥芯片,通过总线或其他通信路径106(诸如超传输(HyperTransport)链路)连接到I/O(输入/输出)桥107。I/O桥107,其可以是诸如南桥芯片,从一个或多个用户输入设备108(诸如键盘、鼠标)接收用户输入并且通过路径106和存储器桥105将所述输入转发到CPU102。并行处理子系统112通过总线或其他通信路径113(诸如PCI Express、加速图形接口或超传输链路)耦连到存储器桥105;在一个实施例中,并行处理子系统112是将像素传输到显示设备110(诸如基于传统的CRT或LCD的显示器)图形子系统。图形驱动器103可以配置为通过通信路径113为并行处理子系统112发送图形基元,以生成像素数据用于在显示设备110上显示。系统盘114也连接到I/O桥107。开关116提供I/O桥107与例如网络适配器118以及各种插入式卡120和121的其他部件之间的连接。其他部件(未示出),包括USB或其他端口连接、CD驱动器、DVD驱动器、电影录制设备及类似部件,也可以连接到I/O桥107。使图1中所示各种部件互连的通信路径可以采用任何适合的协议实现,例如PCI(外部设备互连)、PCI-Express、AGP(加速图形端口)、超传输、其他总线或者端到端通信协议。不同设备间的连接可采用本技术领域已知的不同协议。
在一个实施例中,所述并行处理子系统112包含对于图形和视频进行了优化处理的电路,所述电路包括例如视频输出电路,并且构成图形处理单元(GPU)。在另一个实施例中,在保留底层的计算结构的同时,所述并行处理子系统112包含对于通用目的处理进行了优化的电路,本文将详细描述。在另一个实施例中,可以将所述并行处理子系统112与一个或多个其他系统单元集成,例如所述存储器桥105、CPU 120、以及I/O桥107,以形成片上系统(SoC)。
应该理解,本文所示系统是示例性的,变化和修改都是可能的。连接拓扑,包括桥的数量和布置、CPU 102的数量、以及并行处理子系统112的数量,可根据需要修改。例如,在一些实施例中,系统存储器104直接连接到CPU 102而不是通过桥,其他设备通过存储器桥105以及CPU102与系统存储器104通信。在其他可选拓扑中,并行处理子系统112连接到I/O桥107或直接连接到CPU 102,而不是连接到存储器桥105。在又一个实施例中,I/O桥107和存储器桥105可被集成到单个芯片上。大量实施例可以包括两个或多个CPU 102以及两个或多个并行处理系统112。本文所示的特定部件是任选的,例如,可以支持任意数量的插入式卡或外设。在一些实施例中,开关116被去掉,网络适配器118和插入式卡120、121直接连接到I/O桥107。
图2A示出根据本发明一个实施例的,耦连到具有自刷新能力的显示设备110的并行处理子系统112。如图所示,并行处理子系统112包括图形处理单元(GPU)240,所述图形处理单元240通过DDR3总线接口耦连到图形存储器242。图形存储器242包括一个或多个帧缓冲器244(0)、244(1)......244(N-1),其中N是应用于并行处理子系统112中的帧缓冲器的总数。并行处理子系统112经配置以基于存储在帧缓冲器244中的像素数据生成视频信号,并通过通信路径280将视频信号传输到显示设备110。所述通信路径280可以是本技术领域已知的任何视频接口,例如嵌入式显示端口(eDP)接口或低电压差动信号(LVDS)接口。
GPU 240可经配置以通过通信路径113,例如PCIe总线,从CPU 102处接收图形基元。GPU 240处理所述图形基元以生成用于在显示设备110显示的像素数据帧,并且将所述像素数据帧存储在帧缓存器244中。在正常操作时,GPU 240经配置以从帧缓冲器244中扫描出像素数据从而生成用于在显示设备110显示的视频信号。在一个实施例中,GPU 240经配置以生成数字视频信号,并将所述数字视频信号通过诸如LVDS、DVI、HDMI或显示端口(DP)接口传输到显示设备110。在另一个实施例中,GPU 240可经配置以生成模拟视频信号,并将所述模拟视频信号通过诸如VGA或DVI-A模拟视频接口传输到显示设备110。在通信路径280执行模拟视频接口的实施例中,显示设备110可以通过使用一个或多个模数转换器采样所述模拟信号,将接收到的模拟信号转换为数字信号。
如图2A所示,显示设备110包括定时控制器(TCON)210、自刷新控制器(SRC)220、液晶显示(LCD)设备216、一个或多个列驱动器212、一个或多个行驱动器214、以及一个或多个本地帧缓存器224(0)、224(1)......224(M-1),其中M是应用于显示设备110中的本地帧缓存器的数量。TCON 210生成视频定时信号用于通过所述列驱动器212和所述行驱动器214来驱动LCD设备216。列驱动器212、行驱动器214以及LCD设备216可以是本技术领域已知的任何传统的行驱动器、列驱动器以及LCD设备。又如图所示,TCON 210可通过通信接口,诸如小型LVDS接口,将像素数据传输到列驱动器212和行驱动器214。
SRC 220经配置以基于存储在本地帧缓冲器224中的像素数据生成用于在LCD设备216显示的视频信号。在正常操作时,显示设备110基于通过通信路径280从并行处理子系统112接收的视频信号来驱动LCD设备216。相反,当显示设备110正操作在面板自刷新模式时,显示设备110基于从SRC220接收的视频信号来驱动LCD设备216。
GPU 240可经配置以管理显示设备110进入和退出面板自刷新模式的转换。理想地,在显示设备110所显示的图像中的图形非活跃期期间,通过操作显示设备110进入面板自刷新模式,可降低计算机系统100的总体能耗。在一个实施例中,为了使显示设备110进入面板自刷新模式,GPU 240可使用频带内(in-band)信号传输的方式将消息传输到显示设备110,例如在通过通信路径280传输的数字视频信号中嵌入消息。在可选的实施例中,GPU 240可使用边频带(side-band)信号模式传输消息,例如通过使用辅助通信通道传输所述消息。下面结合图2B-2D描述用于使显示设备110进入或退出面板自刷新模式的不同信令方法。
现在回到图2A,在接收到所述消息以进入自刷新模式后,显示设备110在本地帧缓冲器224中缓存通过通信路径280接收的下一帧像素数据。显示设备110转换用于驱动LCD设备216的控制从由GPU 240生成的视频信号到基于存储在本地帧缓存器224中的像素数据由SRC220生成的视频信号。当所述显示设备110处于面板自刷新模式时,SRC 220连续地生成表示存储在本地帧缓存器224中的缓存像素数据的重复视频信号,用于一个或多个连续的视频帧。
为了使显示设备110退出面板自刷新模式,GPU 240可使用如上述使显示设备110进入面板自刷新模式的类似的方法,来传输类似的消息到显示设备110。在接收到所述消息以退出面板自刷新模式后,显示设备110经可以配置以确保与GPU 240生成的视频信号向关联的像素位置和与当前用于驱动面板自刷新模式下的LCD设备216的SRC 220生成的视频信号相关联的像素位置进行对准。一旦像素位置被对准,显示设备可转换用于驱动LCD设备216的控制从SRC 220生成的视频信号到由GPU 240生成的视频信号。
用于执行自刷新能力的存储量可根据用于连续刷新显示设备110上图像的视频的未压缩帧的尺寸。在一个实施例中,显示设备110包括单个本地帧缓冲器224(0),所述本地帧缓冲器被调整尺寸以适应用于在LCD设备216上显示的像素数据的未压缩帧。帧缓冲器244(0)的尺寸可基于用于存储在LCD设备216上显示的像素数据的未压缩帧所需要的最小字节数,可通过LCD设备216的本机分辨率的宽乘以高乘以色彩深度计算出。例如,帧缓冲器224(0)可调整尺寸用于配置WUXGA分辨率(1920×1200像素)以及每像素24比特(bbp)色彩深度的LCD设备216。在这样的情况下,可用于自刷新像素数据缓冲的本地帧缓冲器224(0)的存储的数量应该至少为可寻址存储器的6750kB(1920×1200×24bpp;其中1千字节等于1024或210字节)。
在另一个实施例中,本地帧缓冲器224(0)的尺寸可以小于用于存储在LCD设备216上显示的像素数据的未压缩帧所需的字节数量。在这种情况下,像素数据的未压缩帧可由SRC220压缩,例如通过行程长度对所述未压缩像素数据编码,并且作为压缩像素数据存储在帧缓冲器224(0)中。在这种实施例中,SRC 220可经配置为在生成用于驱动LCD设备216的视频信号之前解码该压缩的像素数据。在另外的实施例中,GPU 240可在对传输到显示设备110的数字视频信号中的压缩像素数据进行编码之前,压缩该像素数据帧。例如,GPU 240可经配置以采用MPEG-2格式编码像素数据。在这种实施例中,SRC 220可在本地帧缓冲器224(0)中以压缩格式存储压缩像素数据,并且在生成用于驱动LCD设备216的视频信号之前解码该压缩的像素数据。
显示设备110能显示3D视频数据,例如立体视频数据。立体视频数据包括用于3D视频的每个帧的未压缩像素数据的左视图和右视图。每个视图对应几乎同时捕获的相同场景的不同摄像方位。一些显示设备能同时显示三个或更多视图,例如在某些类型的自动立体显示中。
在一个实施例中,显示设备110可包括和立体视频数据有关的自刷新能力。立体视频数据的每个帧包括用于在LCD设备216上显示的像素数据的两个未压缩帧。像素数据的每个未压缩帧可由LCD设备216的全分辨率和色彩深度上的像素数据组成。在这种实施例中,本地帧缓冲器224(0)可调整尺寸以保存立体视频数据的一个帧。例如,为了存储WUXGA分辨率以及24bpp色彩深度的未压缩立体视频数据,本地帧缓冲器224(0)的尺寸应该至少为13500kB(2×1920×1200×24bbp)大小的可寻址存储器。可选地,本地帧缓冲器224可包括两个帧缓冲器224(0)和224(1),每个调整尺寸以存储用于在LCD设备216上显示的未压缩像素数据的单个视图。
在另一实施例中,SRC 220可经配置以压缩所述立体视频数据并在本地帧缓冲器224中存储压缩的立体视频数据。例如,SRC 220可采用多重视角视频编码(MVC),如H.264/MPEG-4AVC视频压缩标准中所述,来压缩所述立体视频数据。可选地,GPU 240可在对数字视频信号中的压缩视频数据编码之前压缩所述立体视频数据,用于传输到显示设备110。
在一个实施例中,显示设备110可以包括抖动性能。抖动允许显示设备110显示较LCD设备216的硬件所能显示的相比更加能够感知的颜色。时间上的抖动在LCD设备216的可用调色板中的两个近似的颜色之间进行快速交替,这样所述像素被感知为在LCD设备216的可用调色板中没有包括的不同的颜色。例如,通过快速地在黑白之间交替像素,观看者可以感知到灰色。在一个正常的操作状态下,GPU 240可以配置以在连续视频的帧中交替改变像素数据,使得在由显示设备110显示的图像中感知到的颜色在所述LCD设备216的可用调色板之外。在自更新模式下,显示设备110可以配置以在本地帧缓冲器224中缓存两个连续的像素数据帧。然后,SRC 220可以配置以交替的方式从本地帧缓冲器224中扫描出两个像素数据帧,用来产生在LCD设备216上显示的视频信号。
图2B示出了通信路径280,根据本发明的一个实施例,其实施为嵌入的显示端口(DisplayPort)接口。嵌入的显示端口(eDP)是一个标准的用于内部显示设备的数字视频接口,诸如便携式计算机的内部LCD设备。通信路径280包括主链路(eDP),其包括1、2、或4个高带宽数据传输的差分对(分道(lane)),所述eDP接口还包括面板使能信号(VDD),背光使能信号(Blacklight_EN),背光pwm信号(Blacklight_PWM)和热插拔检测信号(HPD)以及单差分对辅助信道(Aux)。所述主链路是一个从GPU 240至显示设备110的单向通信信道。在一个实施例中,GPU 240可以配置以通过eDP主链路的单个分道传输从存储在帧缓冲器224中的像素数据产生的视频信号。在另外的实施例中,GPU 240可以经配置以通过eDP主链路的2或4个分道来传输所述视频信号。
面板使能信号VDD可以从GPU连接至显示设备110来开启显示设备110。背光使能和背光pwm信号控制在正常运行时显示设备110的背光强度。但是,当显示设备110在面板自刷新模式下运行时,对这些信号的控制必须由TCON210来处理,并且可以由SRC 220通过控制从辅助通信通道(Aux)接收的信号来改变。本领域技术人员将认识到,背光的强度可以通过经背光pwm信号(Backlight_PWM)来调制信号的脉冲宽度从而进行控制。在一些实施例中,通信路径280还可以包括帧锁信号(FRAME_LOCK),其指示由SRC 220产生的视频信号中的垂直同步。所述FRAME_LOCK信号可以用来使由GPU 240产生的视频信号和由SRC220产生的视频信号再次同步。
所述热插拔检测信号HPD,可以是从所述显示设备110连接到GPU240的信号,其用于检测热插拨事件或用于将中断请求从显示设备110通信至GPU 240。为了指示热插拨事件,显示设备驱动HPD为高来指示出显示设备已经连接到通信路径280上。在显示设备连接到通信路径280之后,显示设备110可以通过使所述HPD信号在0.5和1毫秒之间快速脉冲为低电平,从而发出中断请求的信号。
辅助信道Aux是低带宽双向半双工数据通信信道,用来从GPU 240至显示设备110以及从显示设备110至GPU 240传送命令和控制信号。在一个实施例中,指示显示设备110应该进入或退出面板自刷新模式的消息可以在辅助信道上通信。在辅助信道上,GPU 240是主设备,显示设备110是从设备。在这样的配置中,数据或消息可以使用以下的技术从显示设备110发送至GPU 240。首先,显示设备110指示GPU 240显示设备110想通过启动在热插拔检测信号HPD上的中断请求从而在辅助通信信道上发送通信量。当GPU 240检测到中断请求,GPU 240发送交易请求消息至显示设备110。一旦显示设备110接收到所述交易请求消息,显示设备110就以一个确认消息作出响应。一旦GPU 240接收这个确认消息,GPU 240可以读出显示设备110中的一个或多个寄存器值来取回在辅助信道上的数据或消息。
本领域技术人员应该理解的是,通信路径280可以实施为在GPU240和显示设备110之间传输视频信号的不同的视频接口。例如,通信路径280可以实施为高分辨率的多媒体接口(HDMI)或低压差分信号(LVDS)视频接口,诸如open-LDI。本发明的范围不局限于一个实施例中的嵌入式显示端口视频接口。
图2C是根据本发明的一个实施例的数字视频信号250的概念图,数字视频信号250由GPU 240产生用于在通信路径280上传输。如图所示,数字视频信号250被格式化以在eDP视频接口的主链路的四个分道(251,252,253和254)上进行传输。eDP视频接口的主链路可以在三个链路符号时钟速率之一下运行,其由eDP规范(162MHz,270MHz或540MHz)来指定。在一个实施例中,基于在当显示设备110连接到通信路径280时执行用于配置主链路的链路训练操作,GPU 240设置链路符号时钟速率。对每一链路符号时钟周期255,10比特符号,其是用8b/10编码来编码1字节的数据或者控制信息,在eDP接口的每一活动分道上传输。
数字视频信号250的格式能够使次级数据包直接插入到传输至显示设备110的数字视频信号250中。在一个实施例中,次级数据包可以包括从GPU 240发送至显示设备110的消息,其请求显示设备110进入或退出面板自刷新模式。这样的次级数据包能够使该发明的一个或多个方面通过现有的eDP接口的物理层来实现。应该理解的是,同轴(in-line)信号发送的形式可以实施为其他基于包的视频接口,并且其不局限于实施eDP接口的实施例。
次级数据包可以在由数字视频信号250代表的视频帧的垂直或水平消隐期间被插入到数据视频信号250中。如图2C示出的,数字视频信号250一次被打包为像素数据的一个水平线。对像素数据的每一水平线,数字视频信号250包括在第一链路时钟周期255(00)期间的消隐开始(BS)成帧符号,以及相应的在后续链路时钟周期255(05)期间的消隐结束(BE)成帧符号。在链路符号时钟周期255(00)处的BS符号与链路符号时钟周期255(5)处的BE符号之间的数字视频信号250的部分对应于水平消隐期间。
控制符号和次级数据包可在水平消隐期间被插入到数字视频信号250中。例如,在BS符号之后的第一链路符号时钟周期255(01)中插入VB-ID符号。VB-ID符号为显示设备110提供信息,如主视频流是否在垂直消隐期间或垂直显示期间,主视频流是否是隔行扫描或逐行扫描,以及对于隔行视频来说主视频流是否在偶数域或奇数域。紧随VB-ID符号,在链路符号时钟周期255(02)和255(03)处分别插入视频时间戳(Mvid7:0)和音频时间戳(Maud7:0)。在水平消隐期间的其余链路符号时钟周期255(04)期间可以插入虚设的符号。虚设的符号可以是特殊的保留符号,表示在该链路符号时钟周期期间的该分道中的数据是虚设数据。链路符号时钟周期255(04)可具有多个链路符号时钟周期的持续时间,这样在通信路径280上的数字视频信号250的帧速率等于显示设备110的刷新率。
通过将链路符号时钟周期255(04)期间的多个虚设符号替换为次级数据包,次级数据包可被插入到数字视频信号250中。通过特殊的二次启动(SS)和二次结束(SE)成帧符号来对次级数据包进行成帧化。次级数据包可包括音频数据包、链路配置信息、或请求显示设备110进入或退出面板自刷新模式的消息。
将BE成帧符号插入到数字视频信号250中,以表示对于当前视频帧的水平线活跃像素数据的开始。如图所示,像素数据P0...PN具有8位的每通道位深度(bpc)的RGB格式。与视频的水平线的第一像素相关的像素数据P0被打包到链路符号时钟周期255(06)至255(08)处的第一分道251,紧跟着BE符号。与红色通道相关的第一部分的像素数据P0被插入到链路符号时钟周期255(06)处的第一分道251,与绿色通道相关的第二部分的像素数据P0被插入到链路符号时钟周期255(07)处的第一分道251,与蓝色通道相关的第三部分的像素数据P0被插入到链路符号时钟周期255(08)处的第一分道251。与视频的水平线的第二像素相关的像素数据P1被打包成链路符号时钟周期255(06)到255(08)处的第二分道252,与视频的水平线的第三像素相关的像素数据P2被打包成链路符号时钟周期255(06)到255(08)处的第三分道253,与视频的水平线的第四像素相关的像素数据P3被打包成链路符号时钟周期255(06)到255(08)处的第四分道254。接着的视频水平线的像素数据以与像素数据P0-P3相似的方式插入到分道251-254中。在最后的链路符号时钟周期以包括有效的像素数据,任何没有填充的分道可以置为零。如所示的,该第三分道253以及第四分道254在链路符号时钟周期255(13)处置为零。
以上描述的数据序列在视频帧的像素数据的每一个水平线上重复,于像素数据的最上面的水平线开始。视频帧可以包括多个在最上方帧处的水平线,其不包括用于在显示设备110上显示的激活像素数据。这些水平线包括垂直消隐期间,并且可以通过设置VB-ID控制符号中的位来在数字视频信号250中指示出。
图2D是根据本发明的一个实施例的次级数据包260的概念图,该次级数据包260插入到数字视频信号250的水平消隐期间。通过替换在数字视频信号250中的多个虚设符号的一部分,来将次级数据包260插入到数据视频信号250中。例如,图2D示出了在链路符号时钟周期265(00)和265(04)的多个虚设符号。GPU 240可以在链路符号时钟周期265(01)插入次级开始(SS)成帧符号来指示次级数据包260的开始。关联于次级数据包260的数据被插入到链路符号时钟周期265(02)中。关联于次级数据包260的该数据(SB0...SBN)的每一字节被插入到视频信号250的分道251-254的其中一个中。任何没有填入数据的通道可以置为零。GPU 240便在链路符号时钟周期265(03)插入第二结束(SE)成帧符号。
在一个实施例中,次级数据包260可以包括报头以及数据,其指示显示设备110应当进入或退出自刷新模式。例如,次级数据包260可以包括保留的报头代码,其指示所述包是面板自刷新包。次级数据包还可以包括指示显示设备110是否应当进入或退出面板自刷新模式的数据。
如以上描述的,GPU 240可以使用现有的通信通道来传输数字视频信号250至显示设备110,从而通过同频带信号传输方法来发送消息至显示设备110。在其他的实施例中,GPU 240可以通过边频带方法发送消息至显示设备110,诸如通过使用在通信路径280中的辅助通信通道。在其他的实施例中,可以包括专用的通信路径,诸如另外的电缆,来提供信号发送至显示设备110来进入或退出面板自刷新模式。
图3示出了根据一个本发明的实施例,在并行处理子系统112和计算机系统100不同部分之间的通信信号。如所示的,计算机系统100包括嵌入的控制器(EC)310、SPI闪存设备320、系统基本输入/输出系统(SBIOS)330,以及驱动器340。EC310可以是嵌入控制器,其实施先进的配置以及电源接口(ACPI),允许操作系统在CPU102上执行来配置以及控制计算机系统100不同部分的电源管理。在一个实施例中,EC310允许操作系统在CPU102上执行,从而通过驱动器340与GPU 240通信,甚至在PCIe总线停机时亦可。例如,如果GPU 240以及PCIe总线于电源节约模式下关闭,在CPU102上执行的该操作系统可以指示EC310通过驱动器340发送ACPI事件的通知至EC310来唤醒GPU 240。
计算机系统100也可以包括多个显示设备110,诸如内部显示面板110(0)以及一个或多个外部显示面板110(1),,,110(N)。一个或多个显示设备110的每一者可以通过通信路径280(0)...280(N)连接到GPU240。在一个实施例中,包括在通信路径280中的每一个HPD信号也连接到EC310上。当一个或多个显示设备110运行在面板自刷新模式中,如果EC310检测到热插拨事件或者来自其中一个显示设备110的中断请求,则EC310可以负责监视HPD以及唤醒GPU 240。
在一个实施例中,FRAME_LOCK信号是包括于内部显示设备110(0)和GPU 240之间的。FRAME_LOCK传递来自显示设备110(0)的同步信号至GPU 240。例如,GPU 240可以将从帧缓冲器244中的像素数据产生的视频信号与FRAME_LOCK信号进行同步。FRAME_LOCK可以指示激活帧的开始,诸如通过传递TCON210使用的以驱动LCD设备216的垂直同步信号至GPU 240。
EC310传输GPU_PWR和FB_PWR信号至稳压器,其分别提供供电电压给GPU 240和帧缓冲器244。EC310也发送WARMBOOT、SELF_REF和RESET信号至GPU 240,并接收来自GPU 240的GPUEVENT信号。最后,EC310可以通过I2C或者SMBus数据总线与GPU 240通信。这些信号的功能在以下进行描述。
GPU_PWR信号控制稳压器,其为GPU 240提供供电电压。当显示设备110进入自刷新模式时,在CPU102上执行的操作系统可以指示EC310通过呼唤调用驱动器340来对GPU进行断电.驱动器340将驱动GPU_PWR信号为低电平,从而对GPU 240断电来降低计算机系统100总体的耗电。相似的,FB_PWR信号控制稳压器,其为帧缓冲器244提供供电电压。当显示设备110进入自刷新模式时,计算机系统100还可以对帧缓冲器244进行断电以进一步降低计算机系统100的总体耗电。FB_PWR信号以相似的方式对GPU_PWR信号进行控制。可以在GPU 240唤醒期间来声明一个RESET信号,从而将GPU 240保持在重置状态,同时对GPU 240供电以及帧缓冲器244的稳压器允许保持稳定。
通过EC310来声明一个WARMBOOT信号,其指示GPU 240应当从SPI闪存设备320中恢复操作状态,而非执行一个完整的冷启动序列。在一个实施例中,当显示设备110进入面板自刷新模式时,GPU 240可以配置以在GPU 240掉电之前将当前状态保存在SPI闪存设备320中。GPU 240可以在唤醒时从SPI闪存设备320加载所保存的状态信息来恢复操作状态。加载保存的状态信息降低了唤醒GPU 240来执行完整的冷启动序列所需要的时间。在频繁进入和退出面板自刷新模式时,降低唤醒GPU 240的时间是有利的。
当显示设备110运行于面板自刷新模式时,由EC310声明一个SELF_REF信号。该SELF_REF信号指示给GPU 240显示设备110当前运行在面板自刷新模式,以及通信路径280应当被隔离来防止瞬变会干扰到存储在本地帧缓冲器224数据。在一个实施例中,GPU 240可以在当SELF_REF信号声明时通过弱的下拉电阻将通信路径280接地。
GPUEVENT信号允许GPU 240来指示给CPU102事件的发生,即使是当PCIe总线关闭的情况下亦可。GPU 240可以声明GPUEVENT给报警系统EC310,以配置I2C/SMBUS来使GPU 240和系统EC310进行通信。I2C/SMBUS是双向通信总线,其配置为I2C,SMBUS,或者其他的双向通信总线,从而使GPU 240和系统EC310进行通信。在一个实施例中,PCIe总线可以在显示设备110工作在自刷新模式时关闭。操作系统可以通过系统EC310将事件通知给GPU 240,该事件诸如光标更新或屏幕刷新,即使在PCIe总线关闭时亦可。
图4是根据本发明的一个实施例的具有自刷新能力的显示设备110的状态图400。如所示的,显示设备110在正常状态开始。在该正常状态410中,显示设备接收来自GPU 240的视频信号。TCON210用接收自GPU 240的视频信号驱动LCD设备216。在正常运行状态中,显示设备110监视通信路径280以确定GPU 240是否已经发出了面板自刷新输入请求。如果显示设备110接收该面板自刷新输入请求,那么显示设备110传输一个唤醒帧缓存状态420。
在唤醒帧缓冲器状态420,显示设备110唤醒了本地帧缓冲器224。如果显示设备110不能初始化本地帧缓冲器224,显示设备110可发送指示显示设备110未能进入面板自刷新模式的中断请求到GP U240,并且显示设备110返回到正常状态410。在一个实施例中,在通过通信路径280接收到下一帧视频之前(即由GPU 240生成的VSync信号的下一个上升沿之前),可以要求显示设备110初始化本地帧缓冲器224。一旦显示设备110已完成初始化本地帧缓冲器224,显示设备110转换到缓存帧状态430。
在缓存帧状态430,显示设备110等待GPU 240生成的VSync信号的下一个下降沿以开始在本地帧缓冲器224缓存一个或多个视频的帧。在一个实施例中,GPU 240可以通过将值写入到显示设备110中的控制寄存器来指示有多少个连续的视频的帧存储在本地帧缓冲器224中。当显示设备在本地帧缓冲器224中存储了所述一个或多个视频的帧存储以后,显示设备110转换到自刷新状态440。
在自刷新状态440,显示设备110进入了面板自刷新模式,在该模式下,TCON210用SRC 220基于存储在本地帧缓冲器224中的像素数据生成的视频信号来驱动LCD设备216。基于GPU 240所生成的视频信号,显示设备110停止驱动LCD设备216。因此,GPU 240和通信路径280可以置于省电模式以减少计算机系统100的整体功耗。当在自刷新状态440,显示设备110可监控通信路径280以检测来自GPU 240的退出自刷新模式面板的请求。如果显示设备110接收到面板自刷新退出请求,那么显示设备110转换到re-sync状态450。
在re-sync状态450,显示设备110尝试将GPU 240生成的视频信号和SRC 220生成的视频信号重新同步。结合图9A-9C和10-13,重新同步的视频信号的各种技术介绍如下。当显示设备110已完成对视频信号的重新同步,那么显示设备110转变回正常状态410。在一个实施例中,显示设备110会使本地帧缓冲器224转换到本地帧缓冲器休眠状态460,其中关断提供给本地帧缓冲器224的电能。
在一个实施例中,如果显示设备110接收到面板自刷新退出请求,显示设备110可配置以快速退出唤醒帧缓冲器状态420并缓存帧状态430。在这两个状态中,显示设备110仍然与由GPU 240生成的视频信号同步。因此,显示设备110可快速转换回正常状态410而不进入re-sync状态450。一旦显示设备110在自刷新状态440,显示设备110需要在返回到正常状态下410之前进入重新同步状态450。
图5是根据本发明的一个实施例的GPU 240经配置以控制显示设备110转换进入或者转换退出面板自刷新模式的状态图500。从冷启动序列初始配置后,GPU 240进入正常状态510。在正常状态下,基于存储在帧缓冲器244的像素数据,GPU 240生成视频信号以传输到显示设备110。在一个实施例中,GPU 240监视帧缓冲器244的像素数据以检测像素数据中的一个或者多个渐进的空闲等级。例如,GPU 240可以将帧缓冲器244中像素数据的当前帧与帧缓冲器244中像素数据的前一帧相比较以检测像素数据的任何图形活动。如果是两帧之间的像素数据不同,可检测到图形活动。在可替代实施例中,GPU 240可以基于与比较帧缓冲器244中像素数据的连续帧不同的因素来检测空闲的渐进等级。如果GPU 240在存储在帧缓冲器244中像素数据中未能检测到任何图形活动,那么GPU 240可以递增计数器值,指示没有任何图形活动的视频连续帧的数量。如果计数器达到第一阈值,那么GPU 240转换回深度空闲状态520。
在深度空闲状态520,GPU 240仍生成视频信号以在显示设备110上显示。然而,GPU 240操作在省电模式,例如,当保持部分GPU 240负责生成视频信号活动时,通过时钟门控或功率门控GPU 240的特定处理部分。此外,GPU 240可以发送消息到显示设备110请求显示设备110以较低的刷新率驱动LCD设备216。例如,GPU 240可以要求显示设备110将刷新率从75赫兹减小到30赫兹,并且GPU 240可以基于较低的刷新率生成和传输视频信号。当操作在深度空闲状态520,GPU 240可以继续监视帧缓冲器244中的像素数据是否有图形活动。如果GPU 240检测到图形活动,GPU 240转换回正常状态510。返回到深度空闲状态520后,GPU 240可以继续递增计数器值以确定没有任何图形活动的视频连续帧的数量。如果计数器达到比第一阈值大的第二阈值,那么GPU240转换到面板自刷新状态530。
在一些实施例中,状态图500不包括深度空闲状态520。在这样的实施例中,当计数器值达到第二阈值,GPU 240可从正常状态510直接转换到面板自刷新状态530。在另一些实施例中,EC 310、图形驱动器103或者一些其它的专门的监视单元可以对帧缓冲器244中像素数据进行监视并通过I2C/SMBUS发送指示检测到空闲的渐进等级之一的消息到GPU 240。
在面板自刷新状态530,GPU 240将一个或多个在面板自刷新模式中用于显示的视频帧传输到显示设备110。GPU 240可以监控通信路径280以检测在进入自刷新模式时显示装置110的故障。在一个实施例中,GPU 240监视HPD信号以检测由显示装置110发出的中断请求。如果GPU 240从显示设备110检测到中断请求,那么GPU 240可配置通信路径280的辅助信道来接收来自显示设备110的通信。如果显示设备110指示没有成功进入到自刷新模式,那么GPU的240可转换回正常状态510。否则,GPU 240转换到更深度空闲的状态540。在另一个实施例中,GPU 240可能会跨越更深度空闲的状态540并直接转换到GPU掉电状态550。在这样的实施例中,无论显示设备110何时进入面板自刷新模式,GPU 240将完全关闭。
在更深度空闲的状态540,GPU 240可能处于休眠状态并且通信路径280的发射端可能会关闭。GPU 240的某些部分可以进行时钟门控或功率门控,以降低计算机系统100的整体功耗。显示设备110负责刷新显示设备110显示的图像。在一个实施例中,GPU 240可以继续监视帧缓冲器244中的像素数据来检测第三级空闲。例如,当GPU 240未能更新帧缓冲器244中的像素数据时,GPU 240可以继续为视频的每个帧递增计数器。如果GPU 240诸如通过从EC310经由I2C/SMBus接收信号或从图形驱动经由103PCIe总线检测到图形活动,那么GPU 240转换到re-sync状态560。反之,如果GPU 240检测到像素数据的第三级空闲,那么GPU 240转换到GPU掉电状态550。
在GPU掉电状态550,EC 310通过关闭到GPU 240的稳压器供电来关闭GPU。EC310可以驱动GPU_PWR信号为低电平以关闭稳压器供电到GPU 240。在一个实施例中,GPU 240可以保存SPI闪存设备320中的当前运行上下文,以在唤醒时执行热启动序列。在GPU掉电状态550,也可以关闭向图形存储器242供电的稳压器。EC 310可以驱动FB_PWR信号为低电平以关闭向图形存储器242供电的稳压器。
当GPU 240是在更深度空闲状态540或GPU掉电状态550,EC 310可以指示唤醒GPU 240以更新显示设备110显示的图像。例如,电脑系统100的用户可开始输入到需要GPU 240更新显示设备110显示的图像的应用程序。在一个实施例中,驱动器340可以指示EC310声明GPU_PWR和FB_PWR信号以开启向GPU 240和帧缓冲器244供电的稳压器。当GPU 240开启,GPU 240将基于WARMBOOT信号和RESET信号的状态执行启动序列。如果EC310声明WARM_BOOT信号,那么GPU 240可从SPI闪存设备320加载存储的环境参数。否则,GPU 240可执行冷启动序列。GPU 240也可基于SPI闪存设备320中存储的信息配置通信路径280的发射端。GPU 240执行启动序列后,GPU 240可发送面板自刷新退出请求到显示设备110。然后GPU 240转换到re-sync状态560。
在re-sync状态560,GPU 240基于存储在帧缓冲器244的像素数据开始生成视频信号。视频信号通过信路径280传输到显示设备110并且显示设备110尝试将GPU 240生成的视频信号和由SRC220生成的视频信号重新同步。经过重新同步的视频信号是完整的,GPU 240转换回正常状态510。
面板自刷新模式下对数据对象的访问
图6显示了根据本发明一个实施例的通过计算机系统100实施的存储器管理算法。如图所示,系统存储器104包括图形驱动器103(结合如上图1中的描述),以及操作系统612、应用程序614、锁624、页表616,和数据对象缓存618。操作系统612可以是能够为计算机系统100实施虚拟化存储器架构的任何操作系统。例如,操作系统612可以是微软WindowsTM操作系统如WindowsTM XP。应用程序614可以是配置为由CPU 102执行的程序(即一组指令)。应用程序614可以还包括着色器程序(即,一个或多个指令,当由GPU240执行时,其导致GPU 240产生被着色的像素数据)。在一个实施例中,应用程序614可以通过应用程序编程接口(API),如Direct3D或OpenGL API来呼叫图形驱动器103,其导致图形驱动器103产生用于在GPU 240上执行的微码。替代实施例中,GPU 240可用在GPGPU的环境中,如GPU 240用来对大数据集合进行高度并行计算。在这样的实施例中,着色程序指令的执行可以导致GPU 240产生并非将要用于显示在显示设备110上的数据。例如,所产生的数据可用于在三维模型的有限元分析中,以确定所设计结构的各种故障模式。
还示出的是,帧缓冲器244包括数据对象622,其可包括由GPU 240在执行着色器程序期间生成的一个或多个数据对象(即数据结构)。应用程序614可包含一个或多个着色器程序指令,其导致GPU 240在帧缓冲器244中生成数据对象。数据对象可以存储在数据对象622中。在一个实施例中,操作系统612或应用程序614可配置以访问数据对象622,从而从GPU 240在执行着色程序过程中计算的结果数据中读取值。可以理解的是,不止一个在CPU 102上执行的应用程序(或相同的应用程序的多线程)可要求同时访问数据对象622。在一个实施例中,计算机系统100可配置以确保这两个应用程序或线程不会同时访问一个数据对象。
为了保证数据对象622的数据一致性,操作系统612可以实现互斥算法,其防止多个应用程序或线程同时访问数据对象622中的相同的数据对象。在一个实施例中,锁624包括与数据对象622中的相应数据对象相关的一个或多个锁。锁可以是单一比特(位),测试该比特以确定数据对象是否是自由的,并且该锁可在同一指令周期期间由应用程序来设置,以为了应用程序能访问数据对象。例如,当GPU 240为新的数据对象分配存储器中的数据对象622时,GPU 240也可以分配锁624中相应的锁对象(例如,位),其与该新的数据对象相关联。当应用程序614试图访问数据对象622中的数据对象时,GPU 240可以测试与该数据对象相关的锁624中的锁定位。如果相关的锁定位已被设置,则应用程序614必须等到所有者应用程序或线程通过清除该锁定位来释放该锁。一旦锁已被释放(即,由所有者应用程序或线程清除该位),那么应用程序614可以获取该锁并访问数据对象622中相关的数据对象。在替代的实施例中,其他互斥算法也可以通过操作系统612实现,以确保对数据对象的互斥访问。例如,可能的互斥机制可包括控制锁、二进制信号语、原子操作,或监视器(模块或方法),其可在任何时间点只由单一线程来访问。
在一个实施方案,锁624也可以确保数据对象622中的数据对象具有适用于操作系统612或应用程序614使用的预定义的格式。在一个实施例中,GPU 240可暂时将数据对象以足以由GPU 240处理的格式存放在帧缓冲器244中。然而,这种格式可能不适合由操作系统612或应用程序614使用。例如,GPU 240可以压缩格式存储数据对象,以使得GPU 240和存储器242之间的存储器接口操作的延迟最小化。然而,CPU 102可能无法解码该压缩格式。因此,当应用程序614试图获取特定数据对象上的锁时,GPU 240可能会导致数据对象以预定义的格式重新格式化。在这种方式下,GPU 240确保操作系统612或应用程序614接收适当格式的数据对象。
在一个实施例中,操作系统612在系统存储器104中生成一个或多个页表616。页表616允许操作系统612将虚拟存储器中的地址空间映射到物理存储器中的地址空间,诸如耦连到CPU 102的实际DRAM模块。操作系统612可为CPU 102上执行的每个进程生成单一的页表,或者替换地,与每个目前正在执行的进程相关的单独页表。CPU 102可包括存储器管理单元(未显示),其包括翻译后备缓冲器(TLB)用来缓存最近使用的页表条目。当应用程序614或线程尝试读取虚拟存储器地址空间中的存储器地址时,虚拟地址被发送到CPU 102的存储器管理单元。如果虚拟地址匹配TLB中的缓存条目,则存储器管理单元返回与该虚拟地址相关的物理存储器中的地址。如果虚拟地址在TLB中没有相应的条目,则CPU 102遍历页表616的一个或多个页面中的页表条目。如果虚拟地址与页表616中的页表条目相匹配,那么CPU 102返回页表条目中列出的物理存储器中的相应的地址。然而,如果虚拟地址不匹配页表616中的页表条目,则CPU 102产生页面故障,其表示与虚拟地址相关的数据尚未加载到系统存储器104中,操作系统612可从如系统盘114的后备存储中加载数据。操作系统612以常规方式实现页面故障异常处理程序或软件,其配置为一旦页面故障发生时执行。
在一个实施例中,GPU 240在帧缓冲器244中生成数据对象,并将对该新数据对象的处理发送给图形驱动器103。操作系统612然后生成指向与数据对象相关联的虚拟存储器地址空间中的地址的指针。还在页表616中的页表中创建条目,其将虚拟存储器地址空间的地址与存储器242中的数据对象的物理地址相匹配。因此,该指针间接指向存储器242中的数据对象。
为了访问数据对象,应用程序614可获得与数据对象相关的锁。一旦获得相关的锁,应用程序614可尝试读取指针中包括的虚拟地址处的数据。在CPU 102中的存储器管理单元将该虚拟地址解析成物理地址,如上所述。解析的物理地址将指向与数据对象相关的存储器242中的位置。认识到该地址位于存储器242中,操作系统612导致图形驱动器103通过存储器桥105传输指令给GPU 240指令,以读取由解析的地址所指示的位置中存储的值。GPU 240接收由图形驱动器103生成的微码指令,并解析GPU 240中包括的存储器管理单元(MMU)630中的指令。MMU 630通过将GPU240连接至存储器242的存储器接口发送控制信号,以取回所请求的数据,然后通过图形驱动器103将数据传送给应用程序614。
在其他实施例中,存储器242的存储器地址空间也可以被虚拟化。在这样的实施例中,GPU 240可在存储器242中保持一个或多个附加页表(未显示),用于以和如上所述关于CPU 102和系统存储器104类似的方式来实现虚拟地址空间。当不止一个RAM单元连接到GPU 240时,这样的虚拟地址空间可能会更有效。
当显示设备110工作在面板自刷新模式下时,GPU 240和存储器242可能被频繁关闭。因此,通过操作系统612或应用程序614的任何对数据对象622的访问尝试都将失败。理想的情况下,当数据对象622中的数据对象当前获得了一个或多个锁时,GPU 240将被阻止进入深度休眠状态。在一个实施例中,GPU 240被配置为检查锁624,以确定是否有任何目前正在等待的对数据对象622的访问。如果设置了任意锁,那么GPU 240可能延迟进入深度休眠状态,直到目前没有获得对应于数据对象622的锁为止。本领域普通技术人员将会毫不迟疑地承认,目前获得的锁可表明操作系统612或应用程序614会在不久的将来的某个时候尝试从存储器242读取数据。因此,GPU 240应该直到完成所有等待中的请求之后才进入深度休眠状态。
在另一个实施例中,GPU 240可配置为系统存储器104中的数据对象622中缓存一个或多个数据对象。例如,对于由操作系统612或应用程序614获取的锁624中的每个锁,GPU 240可配置为使得数据对象622中的相应数据对象的副本被缓存到系统存储器104中。数据对象缓存618包括一个或多个缓存的数据对象,其对应于目前获得的锁624中的锁。GPU 240可导致与缓存的数据对象相关的指针相对应的页表条目被更新为指向数据对象缓存618中的数据对象的缓存版本。因此,当CPU 102的存储器管理单元为缓存的数据对象解析了虚拟地址解析,则解析的地址指向系统存储器104,而不是存储器242。一旦所有的数据对象已被缓存并且页表条目被更新,GPU 240则会导致显示设备110进入面板自刷新状态,GPU 240可进入深度休眠状态,诸如GPU掉电状态550。
在另一个实施例中,GPU 240可配置用于缓存系统存储器104中的数据对象,即使当目前该数据对象尚未获得锁亦是如此。例如,GPU 240可缓存任何数据对象,其在GPU处于深度休眠状态下时具有很高的被操作系统612或应用程序614访问的概率。GPU 240可配置为始终缓存一主表面(primary surface),其包括显示装置110上正在显示的可见像素数据。在Windows操作系统上常用的功能是屏幕打印功能,该功能读取包含在主表面中的像素数据,并在系统存储器104中创建显示设备110上正在显示的该图形的数字副本。通过为系统存储器104自动缓存该主表面,操作系统612可执行调用屏幕打印功能,而无需要求GPU 240退出深度休眠状态。
在其他的实施例中,GPU 240可配置为跟踪数据对象缓存618中的数据对象的缓存版本是否已被修改。当GPU 240使数据对象缓存在系统存储器104中时,GPU 240也可以生成与缓存的数据对象的未修改版本相关的散列值,并使该哈希值存储在系统存储器104中。一旦GPU 240退出深度修改状态,GPU 240可比较所存储的哈希值与在当前期间内由缓存的数据对象生成的计算得到的哈希值。如果存储的哈希值与计算得到哈希值匹配,那么GPU 240可确定缓存的数据对象没有被修改,同时GPU 240处在深度休眠状态。如果缓存的数据对象没有被修改,可不要求GPU 240将数据对象的缓存版本写回到存储器242中。
代替更新页表条目从而将虚拟地址映射到数据对象的缓存版本的地址的是,指向数据对象的指针可以被替换一个空指针对象。空指针对象包括无效的存储器地址,当试图通过CPU 102中的存储器管理单元解析时,该地址导致页故障异常被丢给操作系统612。页面故障异常处理器可被配置用于处理页故障。在一个实施例中,页故障异常处理器可配置为导致GPU240唤醒,使GPU 240可以处理来自操作系统612或应用程序614对访问存储器242中的数据对象的请求。在另一个实施例中,页故障异常处理器可负责将页表条目重新映射为指向系统存储器104中的数据对象的预缓存版本。因为GPU 240可能会维持深度休眠状态很短的时间,如250毫秒或更少,因此仅在显示设备110准备进入自刷新模式之后它可能不足以执行所有的页表条目的缓存和重新映射。因此,GPU 240可以在正常操作期间将数据对象的缓存版本保持在系统存储器104中。因此,在显示设备准备进入面板自刷新模式之后,GPU 240可以跳过将数据对象传输给图形驱动器103。相反,数据对象的指针可以以更快的操作来替换,并且只有当操作系统612或应用程序614试图访问数据对象时,页表条目才由页故障异常处理器进行更新。
图7A-7B示出根据本发明的一个实施例的,用于更新计算机系统的页表中的页表条目的过程的概念性示意图。操作系统612可以定义虚拟存储器地址空间710,其避免了需要应用程序614来执行许多存储器管理任务。操作系统612可为CPU 102上执行的所有应用程序分配单一的虚拟存储器地址空间710,或操作系统612可以为每个应用程序,如应用程序614创建不同的虚拟存储器地址空间710。再次,当GPU 240为数据对象分配帧缓冲器244中的存储器时,GPU 240也可以为该新的数据对象创建处理器或指针(这两者都可在下文简称为指针)。GPU可以传递指针给图形驱动器103,因此应用程序614可以访问该新的数据对象中的值。该指针可以包括图形存储器地址空间720中的存储器地址,其指向物理存储设备中的数据对象。例如,GPU 240可为图形存储器地址空间720中的三个数据对象分配存储器。第一个数据对象位于存储器地址722,第二个数据对象位于存储器地址724,第三个数据对象位于存储器地址726。
在接收到指向图形驱动器103处的图形存储器地址空间720中的位置后,操作系统612会更新该指针以指向虚拟存储器地址空间710中的地址,而不是图形存储器地址空间720中的地址。应用程序614可以通过读或写在更新的指针中包括的地址,使用虚拟存储器地址空间710来访问数据对象。如所示的,操作系统612将指向三个数据对象的指针更新为分别指向虚拟存储器地址空间710中的存储器地址712,714和716。当更新指针时,操作系统612还在页表616中创建页表条目,以将虚拟存储器地址空间710中的存储器地址712映射到图形存储器地址空间720中的存储器地址722,将虚拟存储器地址空间710中的存储器地址714映射到图形存储器地址空间720中的存储器地址724,并将虚拟存储器地址空间710中的虚拟存储器地址716映射到图形存储器地址空间720中的存储器地址726。
在检测触发事件后,如检测到存储在帧缓冲器244中的像素数据中第一级空闲,GPU 240会导致显示设备110进入面板自刷新模式并过渡到深度休眠状态。在一个实施例中,GPU 240确定操作系统612或应用程序614是否已经获得了数据对象622中的任意数据对象的锁。图7B所示,应用程序614可能已经获得位于存储器地址724的第二数据对象和位于存储器地址726的第三数据对象上的锁。因此,在进入深度休眠状态之前,GPU 240配置为使得数据对象缓存618中的第二和第三数据对象缓存在系统存储器104中。GPU 240将第二和第三数据对象发送给图形驱动器103,其要求操作系统612为数据对象分配系统存储器中的地址空间730中的存储器。操作系统612可分配起始于存储器地址734的存储器块来存储第二数据对象,并分配起始于存储器地址736的存储器块来存储第三数据对象。GPU240然后发送请求给图形驱动器103以更新页表616中的页表条目,这样虚拟存储器地址空间710中的存储器地址714对应于系统存储器地址空间730中的存储器地址734,虚拟存储器地址空间710中的存储器地址716对应于系统存储器地址空间730中的存储器地址736。应用程序614继续分别使用存储器地址714和716来引用第二和第三数据对象。然而,当CPU102的存储器管理单元将虚拟地址解析成物理地址时,所解析的地址指向系统存储器104中的数据对象的缓存版本。因此,即使缓存的数据对象的位置不同于数据对象的位置,应用程序614还是使用与当数据对象由GPU240创建时原本提供给应用程序614的指针完全相同的指针。
图8阐述根据本发明一个实施例的,当图形处理单元240处于深度休眠状态时,提供对于与图形处理单元240相关的数据对象进行访问的应用程序614的方法流程图。虽然方法步骤结合图1、图2A-2D、3-6及7A-7B进行了描述,本领域技术人员将会明白,配置为以任意顺序执行本发明的方法步骤的任意系统都在本发明的范围内。
本方法开始于步骤810,其中GPU 240检测到触发事件,表示显示设备设置为进入自刷新模式。在一个实施例中,GPU 240可监控存储在帧缓冲器244中的像素数据的图形活动。如果像素在一阈值数量的数字视频帧期间内保持静态(即不改变),GPU 240可检测到该数据像素中的第一级空闲。响应于检测到该第一级空闲,显示设备110可理想地被置于自刷新模式下,GPU 240和存储器242会进入深度休眠状态,以尽量减少计算机系统的100的总功耗。在步骤812,GPU 240决定互斥机制(即锁624中的锁位)是否绑定于存储器242中的数据对象。例如,GPU 240决定操作系统612或应用程序614是否已获取了任意数据对象上的锁。如果互斥机制绑定到数据对象,则方法800前进到步骤814,其中GPU 240导致绑定到互斥机制的数据对象被缓存在系统存储器104中。在步骤816,GPU 240导致页表616中的页表条目进行更新,以便相关于该数据对象的指针指向虚拟存储器地址空间710中的虚拟存储器地址,其对应于与该数据对象的缓存版本相关联的存储器地址。然后,方法800继续前进到步骤818。
现在回到步骤812,如果没有互斥机制绑定到数据对象,则方法800直接进入到步骤818。在步骤818,GPU 240使得显示装置110进入面板自刷新模式。在一个实施例中,GPU 240将面板自刷新条目请求通过通信路径280发送给显示设备110。一旦显示设备已成功进入面板自刷新模式,方法800前进到步骤820,其中GPU 240将进入深度休眠状态。在一个实施例中,GPU 240进入掉电状态550,在该状态下GPU 240以及存储器242的供电可能被切断。一旦GPU 240处于在深度休眠状态,方法800终止。
总之,本文公开的技术提供了对与在主机计算机系统上执行的一个或多个应用程序的图形控制器相关的数据对象的访问,即使图形控制器在深度休眠状态下亦可。图形控制器为与图形控制器相关的存储器中的数据对象分配存储器。指向对象的指针传递到主机计算机系统,它由主机计算机系统重新映射到虚拟存储器地址空间。在图形控制器进入深度休眠状态前,图形控制器会导致数据对象的副本被缓存在系统存储器中,并且更新页表条目以便将指针中的虚拟存储器地址映射到系统存储器中缓存的数据对象的地址。当图形控制器进入深度休眠状态时,应用程序可以继续使用该指针中包含的虚拟存储器地址来访问该数据对象。
所公开的技术的一个优点是数据对象的物理存储位置对主机系统上执行的操作系统或应用程序是透明的。用来标识物理存储位置的指针与对于数据对象是否在图形存储器或系统存储器驻留的应用程序是相同的。此外,在图形控制器被关闭时可以跟踪数据对象的状态,以确定一旦图形控制器被唤醒时图形控制器是否需要更新图形存储器中的数据对象,并恢复处理图形数据以生成视频信号用于在显示设备上显示。因此,转换进入并退出自刷新模式对于被配置用于访问数据对象的操作系统和应用程序来说是透明的。
虽然前面所述的是本发明的实施例,在不背离本发明基本范围的前提下可以设计出本发明更多的实施例。例如,本发明的某些方面可以由硬件或软件来实现,或者是由硬件与软件结合在一起来实现。本发明的一个实施例可以实现为计算机系统所使用的程序产品。程序产品的程序对实施例的功能(包括在此描述的方法)进行定义,并且能够被包含在各种各样的计算机可读存储介质内。说明性的计算机可读存储介质包括但不限于:(i)信息在其上永久保存的非可写存储介质(例如,计算机内的只读存储装置,如可被CD-ROM驱动器读出的CD-ROM盘、闪存、ROM芯片或者任意类型的固态非易失性半导体存储器);以及(ii)其上存储有可改变的信息的可写存储介质(例如,磁盘驱动器内的软盘或硬盘驱动器或任意类型的固态随机存取半导体存储器)。当携带有引导本发明的功能的计算机可读指令时,这样的计算机可读存储介质就是本发明的实施例。
因此,本发明的范围由以下的权利要求来界定。
Claims (10)
1.一种用于控制耦连到自刷新显示设备的图形处理单元的方法,所述方法包括:
检测表示显示设备被设置为进入自刷新模式的触发事件;
响应于检测所述触发事件,确定一组互斥机制中的任意互斥机制是否绑定于与所述图形处理单元关联的存储器中存储的数据对象;以及
如果至少一个互斥机制绑定到数据对象,则延迟转变到深度休眠状态,或
如果没有互斥机制绑定到数据对象,则进入深度休眠状态。
2.一种子系统,包括:
图形处理单元,被配置为:
检测表示显示设备被设置为进入自刷新模式的触发事件;
响应于检测所述触发事件,确定一组互斥机制中的任意互斥机制是否绑定于与所述图形处理单元关联的存储器中存储的数据对象;以及
如果至少一个互斥机制绑定到数据对象,则延迟转变到深度休眠状态,或
如果没有互斥机制绑定到数据对象,则进入深度休眠状态。
3.根据权利要求2的子系统,其中所述延迟步骤包括:
等待直到没有互斥机制绑定到数据对象;并且
一旦没有互斥机制绑定到数据对象,则进入深度休眠状态。
4.根据权利要求2的子系统,其中所述延迟步骤包括:
对于所述至少一个互斥机制中的每个互斥机制:
使绑定到互斥机制的数据对象的副本缓存在系统存储器中,以及
使指向绑定到互斥机制的数据对象的指针更新为指向与所述副本相关的系统存储器中的位置的指针;
一旦所述至少一个互斥机制已经在系统存储器中被缓存并且更新了任意相应的指针,则进入深度休眠状态。
5.根据权利要求4的子系统,其中所述延迟步骤进一步包括:
使在深度休眠状态下具有高概率被绑定到互斥机制的一个或多个数据对象每一个的副本被缓存到系统存储器中;
使与所述具有高概率被绑定的一个或多个数据对象相对应的一个或多个指针被更新为指向与系统存储器中的所述数据对象的相应副本相关联的系统存储器中的位置的指针。
6.根据权利要求2的子系统,其中所述延迟步骤包括:
对于所述至少一个互斥机制中的每个互斥机制:
使绑定到互斥机制的数据对象的副本缓存在系统存储器中,以及
使与绑定到互斥机制的数据对象相关联的指针更新为空指针对象,其中应用程序尝试访问与该指针相关联的数据对象生成了页面故障;
一旦所述至少一个互斥机制已经在系统存储器中被缓存并且更新了任意相应的指针,则进入深度休眠状态。
7.根据权利要求6的子系统,所述图形处理单元进一步配置为:
响应于生成的第一页面故障,退出所述深度休眠状态;
将与所述第一页面故障相关联的数据对象相关联的指针更新为指向与所述第一页面故障相关的数据对象的副本相对应的系统存储器中的位置的指针;以及
再次进入所述深度休眠状态。
8.根据权利要求6的子系统,所述图形处理单元进一步配置为:
响应于生成的第一页面故障,退出所述深度休眠状态;
将与所述第一页面故障相关联的数据对象相关联的指针更新为指向与所述第一页面故障相关的数据对象相对应的图形处理单元所关联的存储器中的位置的指针。
9.根据权利要求2的子系统,其中所述延迟步骤包括:
确定绑定于所述至少一个互斥机制的任意数据对象是否以大于第一阈值的平均速率被访问;以及
如果绑定于所述至少一个互斥机制的任意数据对象被以大于所述第一阈值的平均速率进行访问,则继续延迟转变到深度休眠状态,或
如果没有任何绑定于所述至少一个互斥机制的数据对象被以大于所述第一阈值的平均速率进行访问,则进入所述深度休眠状态。
10.一种计算机设备,包括:
包括图形处理单元的子系统,所述图形处理单元被配置为:
检测表示显示设备被设置为进入自刷新模式的触发事件;
响应于检测所述触发事件,确定一组互斥机制中的任意互斥机制是否绑定于与所述图形处理单元关联的存储器中存储的数据对象;以及
如果至少一个互斥机制绑定到数据对象,则延迟转变到深度休眠状态,或
如果没有互斥机制绑定到数据对象,则进入深度休眠状态。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/071,408 | 2011-03-24 | ||
US13/071,408 US8732496B2 (en) | 2011-03-24 | 2011-03-24 | Method and apparatus to support a self-refreshing display device coupled to a graphics controller |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102841671A true CN102841671A (zh) | 2012-12-26 |
CN102841671B CN102841671B (zh) | 2015-09-16 |
Family
ID=45939180
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210082791.8A Active CN102841671B (zh) | 2011-03-24 | 2012-03-26 | 支持耦连到图形控制器的自刷新显示设备的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8732496B2 (zh) |
EP (1) | EP2515294B1 (zh) |
CN (1) | CN102841671B (zh) |
TW (1) | TWI465907B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841799A (zh) * | 2011-03-31 | 2012-12-26 | 辉达公司 | 支持耦连到图形控制器的自刷新显示设备的方法和装置 |
CN105321486A (zh) * | 2014-07-29 | 2016-02-10 | 乐金显示有限公司 | 显示装置以及驱动其的方法 |
CN105446462A (zh) * | 2014-06-27 | 2016-03-30 | 联想(北京)有限公司 | 一种显示方法、装置、电路及电子设备 |
CN108255448A (zh) * | 2017-11-29 | 2018-07-06 | 硅谷数模半导体(北京)有限公司 | 显示装置的控制器及其处理方法、存储介质、处理器 |
US11443710B2 (en) | 2017-12-27 | 2022-09-13 | Lg Display Co., Ltd. | Display interface device capable of reducing power consumption |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8732496B2 (en) | 2011-03-24 | 2014-05-20 | Nvidia Corporation | Method and apparatus to support a self-refreshing display device coupled to a graphics controller |
US10817043B2 (en) * | 2011-07-26 | 2020-10-27 | Nvidia Corporation | System and method for entering and exiting sleep mode in a graphics subsystem |
US9400545B2 (en) | 2011-12-22 | 2016-07-26 | Intel Corporation | Method, apparatus, and system for energy efficiency and energy conservation including autonomous hardware-based deep power down in devices |
US9323307B2 (en) * | 2011-12-30 | 2016-04-26 | Intel Corporation | Active display processor sleep state |
US9251552B2 (en) * | 2012-06-28 | 2016-02-02 | Intel Corporation | Method and apparatus for managing image data for presentation on a display |
KR20140013652A (ko) * | 2012-07-26 | 2014-02-05 | 삼성전자주식회사 | 시스템 온 칩 및 이를 포함하는 전자 기기 |
US10699361B2 (en) * | 2012-11-21 | 2020-06-30 | Ati Technologies Ulc | Method and apparatus for enhanced processing of three dimensional (3D) graphics data |
TWI485557B (zh) * | 2013-01-03 | 2015-05-21 | Quanta Comp Inc | 電腦裝置及其電源管理方法 |
US9612994B2 (en) * | 2013-09-18 | 2017-04-04 | Nvidia Corporation | Snoop and replay for completing bus transaction |
KR102133978B1 (ko) | 2013-11-13 | 2020-07-14 | 삼성전자주식회사 | 압축 데이터를 이용하여 패널 셀프 리프레쉬를 수행할 수 있는 타이밍 컨트롤러, 이의 동작 방법, 및 상기 타이밍 컨트롤러를 포함하는 데이터 처리 시스템 |
KR102203345B1 (ko) | 2014-02-04 | 2021-01-18 | 삼성디스플레이 주식회사 | 표시장치 및 이의 구동방법 |
US9395788B2 (en) * | 2014-03-28 | 2016-07-19 | Intel Corporation | Power state transition analysis |
US20160027410A1 (en) * | 2014-07-25 | 2016-01-28 | Qualcomm Mems Technologies, Inc. | Content update from a display driver in mobile applications |
US9779471B2 (en) * | 2014-10-01 | 2017-10-03 | Qualcomm Incorporated | Transparent pixel format converter |
US10043490B2 (en) | 2014-12-24 | 2018-08-07 | Synaptics Incorporated | Requesting display frames from a display source |
US9666108B2 (en) | 2014-12-24 | 2017-05-30 | Synaptics Incorporated | Opportunistic compression for display self refresh |
US10262624B2 (en) | 2014-12-29 | 2019-04-16 | Synaptics Incorporated | Separating a compressed stream into multiple streams |
US20160198016A1 (en) * | 2015-01-05 | 2016-07-07 | Onavo Mobile Ltd. | Techniques for network resource caching using partial updates |
US10162405B2 (en) * | 2015-06-04 | 2018-12-25 | Intel Corporation | Graphics processor power management contexts and sequential control loops |
KR20160150213A (ko) * | 2015-06-19 | 2016-12-29 | 삼성디스플레이 주식회사 | 디스플레이 패널, 디스플레이 패널을 포함하는 디스플레이 장치 |
CN106547505B (zh) * | 2015-09-22 | 2021-02-05 | 同方威视技术股份有限公司 | 用于实时滑动显示扫描图像的方法及系统 |
TWI564802B (zh) * | 2015-12-14 | 2017-01-01 | 財團法人工業技術研究院 | 初始化週邊裝置之方法與使用此方法之電子裝置 |
DE112018000492T5 (de) | 2017-01-24 | 2019-10-31 | Semiconductor Energy Laboratory Co., Ltd. | Anzeigevorrichtung und elektronisches Gerät |
CN116361213A (zh) | 2017-12-04 | 2023-06-30 | 谷歌有限责任公司 | 使用片上系统的数据的同步处理 |
US10705953B2 (en) * | 2018-03-01 | 2020-07-07 | Futurewei Technologies, Inc. | Application defined multi-tiered wear-leveling for storage class memory systems |
US10817455B1 (en) | 2019-04-10 | 2020-10-27 | Xilinx, Inc. | Peripheral I/O device with assignable I/O and coherent domains |
US10817462B1 (en) | 2019-04-26 | 2020-10-27 | Xilinx, Inc. | Machine learning model updates to ML accelerators |
US10719464B1 (en) | 2019-05-01 | 2020-07-21 | Xilinx, Inc. | Lock circuit for competing kernels in a hardware accelerator |
US11392308B2 (en) * | 2019-05-20 | 2022-07-19 | Apple Inc. | Techniques for implementing user space file systems |
US11586369B2 (en) | 2019-05-29 | 2023-02-21 | Xilinx, Inc. | Hybrid hardware-software coherent framework |
US11204879B2 (en) * | 2019-06-06 | 2021-12-21 | Arm Limited | Memory management circuitry managing data transactions and address translations between an upstream device and a downstream device |
US11074208B1 (en) | 2019-07-24 | 2021-07-27 | Xilinx, Inc. | Routing network using global address map with adaptive main memory expansion for a plurality of home agents |
US11474871B1 (en) | 2019-09-25 | 2022-10-18 | Xilinx, Inc. | Cache coherent acceleration function virtualization |
US11551632B2 (en) * | 2020-06-26 | 2023-01-10 | Ati Technologies Ulc | Accelerated frame transmission |
US11556344B2 (en) | 2020-09-28 | 2023-01-17 | Xilinx, Inc. | Hardware coherent computational expansion memory |
US11972140B2 (en) | 2021-04-26 | 2024-04-30 | Apple Inc. | Hashing with soft memory folding |
US11693585B2 (en) | 2021-04-26 | 2023-07-04 | Apple Inc. | Address hashing in a multiple memory controller system |
US11934313B2 (en) | 2021-08-23 | 2024-03-19 | Apple Inc. | Scalable system on a chip |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716186A (zh) * | 2004-06-30 | 2006-01-04 | 英特尔公司 | 使用睡眠-唤醒机制的比较和交换操作 |
US20070091100A1 (en) * | 2005-10-26 | 2007-04-26 | Via Technologies, Inc. | GPU Pipeline Synchronization and Control System and Method |
CN1959641A (zh) * | 2004-09-30 | 2007-05-09 | 英特尔公司 | 利用虚拟存储器的事务型存储器执行 |
CN1989478A (zh) * | 2004-07-26 | 2007-06-27 | 英特尔公司 | 用于动态dll掉电和存储器自刷新的方法和装置 |
CN101159128A (zh) * | 2006-09-29 | 2008-04-09 | 英特尔公司 | 在自刷新和低响应时间模式下控制显示面板的图形处理器和方法 |
WO2010056587A2 (en) * | 2008-11-13 | 2010-05-20 | Intel Corporation | Shared virtual memory |
CN101819510A (zh) * | 2008-11-18 | 2010-09-01 | 英特尔公司 | 自刷新显示功能的控制技术 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2002304041A1 (en) * | 2001-11-23 | 2003-06-10 | Netac Technology Co., Ltd. | Semiconductor storage method and device supporting multi-interfaces |
CN100530038C (zh) | 2006-03-31 | 2009-08-19 | 鸿富锦精密工业(深圳)有限公司 | 微控制器的开机控制装置及方法 |
US7627723B1 (en) | 2006-09-21 | 2009-12-01 | Nvidia Corporation | Atomic memory operators in a parallel processor |
US8255887B2 (en) * | 2006-11-29 | 2012-08-28 | International Business Machines Corporation | Method and apparatus for re-using memory allocated for data structures used by software processes |
US8327173B2 (en) * | 2007-12-17 | 2012-12-04 | Nvidia Corporation | Integrated circuit device core power down independent of peripheral device operation |
US9613215B2 (en) | 2008-04-10 | 2017-04-04 | Nvidia Corporation | Method and system for implementing a secure chain of trust |
US20090259864A1 (en) * | 2008-04-10 | 2009-10-15 | Nvidia Corporation | System and method for input/output control during power down mode |
US8180905B2 (en) * | 2008-12-09 | 2012-05-15 | Microsoft Corporation | User-mode based remote desktop protocol (RDP) encoding architecture |
KR20100133649A (ko) * | 2009-06-12 | 2010-12-22 | 삼성전자주식회사 | 메모리 링크 아키텍쳐에서 파워 오프 시 데이터 로스를 방지하는 기능을 갖는 멀티 프로세서 시스템 |
US20110047316A1 (en) * | 2009-08-19 | 2011-02-24 | Dell Products L.P. | Solid state memory device power optimization |
TWI420392B (zh) * | 2009-08-26 | 2013-12-21 | Dell Products Lp | 用以致能資訊處置系統中的資源之系統與方法 |
US8943347B2 (en) * | 2009-09-09 | 2015-01-27 | Advanced Micro Devices, Inc. | Controlling the power state of an idle processing device |
CA2717977A1 (en) | 2009-10-20 | 2011-04-20 | Research In Motion Limited | Enhanced fast reset in mobile wireless communication devices and associated methods |
CN101727402B (zh) * | 2009-10-23 | 2012-07-04 | 深圳市江波龙电子有限公司 | 一种非易失性存储器数据的读写控制方法及系统 |
US8732496B2 (en) | 2011-03-24 | 2014-05-20 | Nvidia Corporation | Method and apparatus to support a self-refreshing display device coupled to a graphics controller |
-
2011
- 2011-03-24 US US13/071,408 patent/US8732496B2/en active Active
-
2012
- 2012-03-26 EP EP12161320.2A patent/EP2515294B1/en active Active
- 2012-03-26 CN CN201210082791.8A patent/CN102841671B/zh active Active
- 2012-03-26 TW TW101110308A patent/TWI465907B/zh not_active IP Right Cessation
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1716186A (zh) * | 2004-06-30 | 2006-01-04 | 英特尔公司 | 使用睡眠-唤醒机制的比较和交换操作 |
CN1989478A (zh) * | 2004-07-26 | 2007-06-27 | 英特尔公司 | 用于动态dll掉电和存储器自刷新的方法和装置 |
CN1959641A (zh) * | 2004-09-30 | 2007-05-09 | 英特尔公司 | 利用虚拟存储器的事务型存储器执行 |
US20070091100A1 (en) * | 2005-10-26 | 2007-04-26 | Via Technologies, Inc. | GPU Pipeline Synchronization and Control System and Method |
CN101159128A (zh) * | 2006-09-29 | 2008-04-09 | 英特尔公司 | 在自刷新和低响应时间模式下控制显示面板的图形处理器和方法 |
WO2010056587A2 (en) * | 2008-11-13 | 2010-05-20 | Intel Corporation | Shared virtual memory |
CN101819510A (zh) * | 2008-11-18 | 2010-09-01 | 英特尔公司 | 自刷新显示功能的控制技术 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841799A (zh) * | 2011-03-31 | 2012-12-26 | 辉达公司 | 支持耦连到图形控制器的自刷新显示设备的方法和装置 |
CN102841799B (zh) * | 2011-03-31 | 2016-08-03 | 辉达公司 | 支持耦连到图形控制器的自刷新显示设备的方法和装置 |
CN105446462A (zh) * | 2014-06-27 | 2016-03-30 | 联想(北京)有限公司 | 一种显示方法、装置、电路及电子设备 |
CN105321486A (zh) * | 2014-07-29 | 2016-02-10 | 乐金显示有限公司 | 显示装置以及驱动其的方法 |
US9767747B2 (en) | 2014-07-29 | 2017-09-19 | Lg Display Co., Ltd. | Display device and method of driving the same |
CN105321486B (zh) * | 2014-07-29 | 2018-11-06 | 乐金显示有限公司 | 显示装置以及驱动其的方法 |
CN108255448A (zh) * | 2017-11-29 | 2018-07-06 | 硅谷数模半导体(北京)有限公司 | 显示装置的控制器及其处理方法、存储介质、处理器 |
US11443710B2 (en) | 2017-12-27 | 2022-09-13 | Lg Display Co., Ltd. | Display interface device capable of reducing power consumption |
Also Published As
Publication number | Publication date |
---|---|
CN102841671B (zh) | 2015-09-16 |
TW201245961A (en) | 2012-11-16 |
US8732496B2 (en) | 2014-05-20 |
EP2515294A2 (en) | 2012-10-24 |
EP2515294B1 (en) | 2016-06-22 |
EP2515294A3 (en) | 2013-10-30 |
US20120242671A1 (en) | 2012-09-27 |
TWI465907B (zh) | 2014-12-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102841671B (zh) | 支持耦连到图形控制器的自刷新显示设备的方法和装置 | |
CN102841799B (zh) | 支持耦连到图形控制器的自刷新显示设备的方法和装置 | |
CN102682682B (zh) | 用于控制具有自刷新能力的显示设备的方法和系统 | |
KR101672611B1 (ko) | 페이드 및 핫 플러그 피처를 갖는 케이블 | |
US10798334B2 (en) | Image processing system, image display method, display device and storage medium | |
EP2619653B1 (en) | Techniques to transmit commands to a target device | |
US20120207208A1 (en) | Method and apparatus for controlling a self-refreshing display device coupled to a graphics controller | |
US20120206461A1 (en) | Method and apparatus for controlling a self-refreshing display device coupled to a graphics controller | |
CN102725743A (zh) | 用于控制显示活动的技术 | |
CN101640768A (zh) | 多通道osd视频叠加控制器 | |
US20130083047A1 (en) | System and method for buffering a video signal | |
CN103620521A (zh) | 用于控制系统功耗的技术 | |
US20180286345A1 (en) | Adaptive sync support for embedded display | |
US8587600B1 (en) | System and method for cache-based compressed display data storage | |
TWI443576B (zh) | 圖像顯示系統及方法 | |
CN103853305A (zh) | 一种电源管理方法及电子设备 | |
CN205247878U (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |