CN104679582B - 对于显示设备的命令调度 - Google Patents

对于显示设备的命令调度 Download PDF

Info

Publication number
CN104679582B
CN104679582B CN201410810593.8A CN201410810593A CN104679582B CN 104679582 B CN104679582 B CN 104679582B CN 201410810593 A CN201410810593 A CN 201410810593A CN 104679582 B CN104679582 B CN 104679582B
Authority
CN
China
Prior art keywords
queue
order
scheduler
equipment
host controller
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
CN201410810593.8A
Other languages
English (en)
Other versions
CN104679582A (zh
Inventor
A·潘加姆
S·兰加拉詹
B·P·泰瓦尔
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of CN104679582A publication Critical patent/CN104679582A/zh
Application granted granted Critical
Publication of CN104679582B publication Critical patent/CN104679582B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • 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/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1407General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/60Memory management
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/006Details of the interface to the display terminal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/1097Boot, Start, Initialise, Power
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/08Details of image data interface between the display device controller and the data line driver circuit

Abstract

符合本公开的系统和方法可以用于消除显示设备工作在视频与命令模式中之间的区别,其中,与上述两种模式中的任意一种相关联的命令根据符合本公开的命令调度器被优先地排序并且执行。符合本公开的命令调度器包括显示驱动器栈和耦合于所述显示驱动器栈的调度器。上述调度器被配置用于从该驱动器栈接收命令。进一步,所述调度器被配置用于对要在引导环境期间和在运行时期间执行的命令进行入队并且调度。所述主机控制器还可以耦合于所述调度器,并且可以从所述调度器接收所述命令中的至少一个。最后,所述主机控制器将所述命令传送至该设备用于执行。

Description

对于显示设备的命令调度
技术领域
本公开涉及计算系统,并且具体而言(但非排他地),涉及用于对显示系统中的命令进行调度的技术。
附图说明
图1是示出了包括多核处理器的计算系统的框图的实施例的图。
图2是示出了低功率计算平台的实施例的图。
图3是示出了低功率数据传输平台的实施例的图。
图4是示出了将数据沿通信接口发送至显示设备的片上系统(SoC)设备的实施例的图。
图5是示出了在命令模式的操作期间显示存储器的操作的实施例的图。
图6是显示控制器硬件的配置。
图7是示出了符合本公开的显示控制器硬件的实施例的图。
图8是示出了符合本公开的显示控制器硬件的另一实施例的图。
图9是示出了利用撕裂效应信号来指示显示设备的功能性的方法的流程图的图。
图10是示出了在显示系统中对命令进行调度的方法的流程图的另一图。
具体实施方式
在下面的描述中,阐述了多个具体细节,例如,具体类型的处理器和系统配置、具体硬件结构、具体体系结构和微体系结构的细节、具体寄存器配置、具体指令类型、具体系统部件、具体测量/高度、具体处理器流水线阶段以及操作等的示例,以提供对本公开的全面理解。然而,对于本领域技术人员显而易见的是,所述具体细节不需要被应用以实现本公开。在其它实例中,公知的部件或方法(例如,具体的和可替换的处理器体系结构、用于所描述的算法的具体的逻辑电路/代码、具体的固件代码、具体的互联操作、具体的逻辑配置、具体的制造技术和材料、具体的编译器实现,代码中算法的具体表达、具体的下电和门控技术/逻辑以及计算机系统的其他具体的操作细节)未被详细地描述,以避免不必要地使本公开难以理解。
尽管如下实施例可以参考具体的集成电路中(例如,在计算平台或微处理器中)的能量节省和能效来进行描述,但其他实施例适用于其他类型的集成电路和逻辑设备。本文描述的实施例的类似的技术和教导可以应用于还可以受益于更好的能效和能量节省的其他类型的电路或半导体设备。例如,所公开的实施例不限于桌面计算机系统或超极本TM。并且还可以用于其它设备(例如,手持设备、平板电脑、其他薄型笔记本、片上系统(SOC)设备以及嵌入式应用)中。手持设备的一些示例包括蜂窝电话、互联网协议设备、数码照相机、个人数字助理(PDA)以及手持PC。嵌入式应用通常包括微控制器、数字信号处理器(DSP)、片上系统、网络计算机(NetPC)、机顶盒、网络集线器,广域网(WAN)交换机或可以执行以下教导的功能和操作的任何其他系统。此外,本文描述的装置、方法以及系统不限于物理计算设备,而还可以涉及用于能量节省和效率的软件优化。正如在以下描述中将变得显而易见的,本文描述的方法、装置和系统的实施例(无论是关于硬件、固件、软件、或其组合),对于未来考虑性能的“绿色技术”都是至关重要的。
由于计算系统的改进,其中的部件变得更加复杂。因此,用于在部件之间进行耦合并且通信的互联体系结构也增加了复杂度,以保证带宽需求满足最佳部件操作。此外,不同的市场分割需要互联体系结构的不同方面,以适应市场的需要。例如,服务器需要更高的性能,而移动生态系统有时能够牺牲总体性能以用于功率节省。但是,大多数结构的单一目的在于提供具有最大功率节省的最高可能的性能。以下,讨论了潜在地受益于本文描述的公开的方面多个互联。
注意,上述装置、方法和系统可以实现于前述任何电子设备或系统中。正如具体示出的,以下附图提供了用于利用本文描述的发明的示例性系统。正如以下系统更详细地描述的,多个不同的互联根据上述讨论进行公开、描述、并且重新讨论。并且正如完全显而易见的,上述优点可以应用于互联、结构或体系结构中的任何一个。
参考图1,描绘了包括多核处理器的计算系统的框图的实施例。处理器100包括任何处理器或处理设备,例如,微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、手持处理器、应用处理器、协处理器,片上系统(SOC)或用于执行代码的其他设备。在一个实施例中,处理器100包括至少两个核——核101和102,所述处理器100可以包括非对称核或对称核(示出的实施例)。然而,处理器100可以包括可以是对称或非对称的任何数量的处理元件。
在一个实施例中,处理元件指代用于支持软件线程的硬件或逻辑。硬件处理元件的示例包括:线程单元、线程槽、线程、处理单元、上下文、上下文单元、逻辑处理器、硬件线程、核和/或能够保持处理器的状态(例如,执行状态或体系结构状态)的任何其他元件。换言之,在一个实施例中,处理元件指代能够独立地与代码(例如,软件线程、操作系统、应用或其他代码)相关联的任何硬件。物理处理器(或处理器插槽)通常指代潜在地包括任何数量的其他处理元件(例如,核或硬件线程)的集成电路。
核通常指代位于集成电路上能够维持独立的体系结构状态的逻辑,其中,每一个独立维持的体系结构的状态与至少某些专用的执行资源相关联。与核相反,硬件线程通常指代位于能够维持独立的体系结构状态的集成电路上的任何逻辑,其中,独立地维持体系结构的状态共享对执行资源的访问。正如所看见的,当某资源是共享的而其他资源专用于体系结构状态时,在硬件线程和核的命名之间的线重叠。通常,核和硬件线程由操作系统视为独立的逻辑处理器,其中,操作系统能够独立地调度在每一个逻辑处理器上的操作。
物理处理器100,如图1所示出的,包括两个核——核101和102。这里,核101和102被考虑为对称核,即,具有相同配置、功能单元和/或逻辑的核。在另一实施例中,核101包括乱序处理器核,而核102包括顺序处理器核。然而,核101和102可以从任何类型的核中独立地选择,所述任何类型的核例如是本地核、软件管理的核、适用于执行本地指令集体系结构(ISA)的核、适用于执行翻译指令集体系结构(ISA)的核、协同设计的核或其他已知的核。在不同种类的核环境(即非对称核)中,某些形式的翻译(例如,二进制译码),可以被利用以在一个或两个核上调度或执行代码。有待于进一步讨论,核101中示出的功能单元将在下面进行进一步地描述,例如,核102的单元在描绘的实施例中以类似方式的进行操作。
正如所描述的,核101包括两个硬件线程101a和101b,所述两个硬件线程还可以被称为硬件线程槽101a和101b。因此,软件实体(例如,操作系统),在一个实施例中潜在地将处理器100视为四个独立的处理器,即,能够并行地执行四个软件线程的四个逻辑处理器或处理元件。如上所提及的,第一线程与体系结构状态寄存器101a相关联、第二线程与体系结构状态寄存器101b相关联、第三线程可以与体系结构状态寄存器102a相关联、而第四线程可以与体系结构状态寄存器102b相关联。这里,体系结构状态寄存器(101a、101b、102a以及102b)中的每一个都可以被称为处理元件、线程槽或线程单元,如所上述。正如所示出的,体系结构状态寄存器101a在体系结构状态寄存器101b中被复制,因此单独的体系结构状态/上下文能够被存储用于逻辑处理器101a和逻辑处理器101b。在核101中,其他更小的资源(例如,分配器和重命名器块130中的指令指针和重命名逻辑)还可以被复制用于线程101a和101b。某些资源(例如,重排序/退出单元135中的重排序缓冲器、ILTB 120、加载/存储缓冲器以及队列)可以通过分区来共享。其他资源(例如,通用内部寄存器、页表基寄存器、低级数据高速缓存和数据TLB 115、执行单元140以及乱序单元135的部分)潜在地被完全共享。
处理器100通常包括其他资源,所述其他资源可以被完全共享、通过分区来共享或由处理元件专用/专用于处理元件。在图1中,示出了具有处理器的示出性的逻辑单元/资源的仅示例性的处理器的实施例。注意,处理器可以包括或省略这些功能单元中的任何一个,以及包括未描绘的任何其他已知的功能单元、逻辑或固件。正如所示出的,核101包括简化的、表示性的乱序(OOO)处理器核。但可以在不同的实施例中利用顺序处理器。OOO核包括分支目标缓冲器120,用于预测要执行/处理的分支;以及指令翻译缓冲器(I-TLB)120,用于存储指令的地址翻译条目。
核101进一步包括耦合于取指单元120的解码模块125,用于对所取回的单元进行解码。在一个实施例中,取指逻辑包括分别与线程槽101a和101b相关联的独立的定序器。通常核101与第一ISA相关联,所述第一ISA定义/指定了在处理器100上可执行的指令。通常,是第一ISA的部分的机器代码指令包括指令的一部分(被称为操作码),所述机器代码指令提及/指定要执行的指令或操作。解码逻辑125包括从指令的操作码识别所述指令并且在流水线中传递解码的指令以用于处理的电路,正如由第一ISA定义的。例如,如以下更详细地讨论的,在一个实施例中,包括被设计或适用于识别具体的指令(例如,事务指令)的逻辑。作为由解码器125识别的结果,体系结构或核101采取具体的、预定义的动作,以执行与合适的指令相关联的任务。重要的是,注意本文所描述的任务、块、操作以及方法中的任何一项都可以响应于单个或多个指令而执行;所述单个或多个指令中的某些可以是新的或旧的指令。注意在一个实施例中,解码器126识别同一ISA(或其子集)。可替换的,在不同种类的核环境中,解码器126识别第二ISA(或第一ISA的子集或不同的ISA二者之一)。
在一个示例中,分配器和重命名器块130包括用于保存资源的分配器,例如,用于存储指令处理结果的寄存器文件。然而,线程101a和101b潜在地能够乱序执行,其中分配器和重命名器块130还保存其他资源,例如,用于跟踪指令结果的重排序缓冲器。单元130还可以包括寄存器重命名器,所述寄存器重命名器用于将程序/指令参考寄存器重命名为处理器100内部的其他寄存器。重排序/退出单元135包括部件,例如,上述提到的重排序缓冲器、装入缓冲器以及存储缓冲器,用于支持乱序执行和随后的乱序执行的指令的顺序退出。
在一个实施例中,调度器和执行单元块140,包括用于在执行单元上调度指令/操作的调度器单元。例如,浮点指令在具有可用的浮点执行单元的执行单元的端口上进行调度。还包括与执行单元相关联的寄存器文件,用于存储信息指令处理结果。示例性的执行单元包括浮点执行单元、整数执行单元、跳转执行单元、加载执行单元、存储执行单元以及其他已知执行单元。
更低级的数据高速缓存和数据翻译缓冲器(D-TLB)150耦合于执行单元140。数据高速缓存用于存储最近使用/操作的元素(例如,数据操作数),其潜在地抑制存储器一致性状态。D-TLB用于存储最近虚拟/线性物理地址翻译。作为具体的示例,处理器可以包括页表结构,所述页表结构用于将物理存储器分为多个虚拟页。
这里,核101和102共享到更高级或进一步的高速缓存(例如,与片上接口110相关联的第二级高速缓存)的访问。注意,更高级或进一步指代从执行单元增加或远离执行单元的高速缓存的级别。在一个实施例中,更高级的高速缓存是最后一级数据高速缓存——在处理器100上的存储器层次结构中最后的高速缓存——例如,第二或第三级数据高速缓存。然而,更高级高速缓存不限于此,其可以与指令高速缓存相关联或包括指令高速缓存。追踪高速缓存——一种类型的指令高速缓存——相反可以耦合在解码器125之后,用于存储最近的解码轨迹。这里,指令潜在地指代宏指令(即由解码器识别的通用指令),所述宏指令可以解码为多个微指令(微操作)。
在所描绘的配置中,处理器100还包括片上接口模块110。在历史上,存储器控制器(其在以下进行更详细地描述),已经包括在处理器100外部的计算系统中。在该情形中,片上接口110用于与处理器100外部的设备进行通信,所述处理器100外部的设备例如是,系统存储器175、芯片组(通常包括用于连接到存储器175的存储控制中心,以及用于连接外围设备的I/O控制器中心)、存储控制中心、北桥或其他集成电路。并且在该情形中,总线105可以包括任何已知的互联,例如,多点总线、点对点互联、串行互联、并行总线、一致(例如,高速缓存一致)总线、分层协议体系结构、差分总线以及GTL总线。
存储器175可以专用于处理器100或与系统中的其他设备共享。存储器175的类型的通常示例包括DRAM、SRAM、非易失性存储器(NV存储器)以及其他已知的存储设备。注意,设备180可以包括图形加速器、耦合于存储控制中心的处理器或卡、耦合于I/O控制器中心的数据存储、无线收发器、闪存设备、音频控制器、网络控制器或其他已知设备。
然而近年来,随着更多的逻辑和设备集成于单个管芯(例如,SOC)上,这些设备中的每一个都可以集成在处理器100上。例如,在一个实施例中,存储控制中心与处理器100被设置于同一封装和/或管芯上。这里,核110的部分(核上的部分)包括与其他设备(例如,存储器175或图形设备180)连接的一个或多个控制器。包括用于与这样的设备连接的互联和控制器的配置通常被称为核上(或无核配置)。作为示例,片上接口110包括用于片上通信的环形互联和用于片外通信的高速串行点对点链路105。然而,在SOC环境中,更多的设备(例如,网络接口、协处理器、存储器175、图形处理器180以及任何其他已知的计算机设备/接口)可以集成于单个管芯或集成电路中,用于提供具有高功能性和低功耗的小尺寸架构。
在一个实施例中,处理器100能够执行编译器、优化和/或译码器代码177,以编译、翻译和/或优化应用代码176,用于支持本文描述的装置和方法或与其进行连接。编译器通常包括用于将源文本/代码翻译为目标文本/代码的程序或程序集。通常,利用编译器对程序/应用代码进行的编译在多个阶段以及多次完成,以将高级编程语言代码变换为低级机器或汇编语言代码。然而,单次编译器仍然可以用于简单编译。编译器可以利用任何已知的编译技术并且执行任何已知的编译器操作,例如,词法分析、预处理、语法分析、语义分析、代码生成、代码转换以及代码优化。
更大的编译器通常包括多个阶段,但最通常的是这些阶段包括在两个通用阶段中:(1)前端,即在此阶段中通常可以发生语法处理、语义处理以及某些变换/优化,以及(2)后端,即在此阶段中通常发生分析、变换、优化以及代码生成。某些编译器涉及中间部分,所述中间部分示出了编译器前端和后端之间描绘的模糊性。因此,对编译器的插入、关联、生成或其他操作的引用可以发生于前述阶段或过程,以及编译器的任何其他已知阶段或过程的任何一处。作为示出性的示例,编译器潜在地在编译的一个或多个阶段中插入操作、调用、函数等,例如,在编译的前端阶段中调用/操作的插入,以及然后在变换阶段期间,将调用/操作变换为更低级的代码。注意在动态编译期间,编译器代码或动态优化代码可以插入这样的操作/调用,以及在运行时期间优化代码以用于执行。作为具体的示出性的示例,二进制代码(已编译代码)可以在运行时期间动态地进行优化。这里,程序代码可以包括动态优化代码、二进制代码或其组合。
类似于编译器,译码器(例如,二进制译码器),静态地或动态地翻译代码,以优化和/或翻译代码。因此,对代码、应用代码、程序代码的执行或其他软件环境的引用可以指代:(1)对编译器程序、优化代码优化器或译码器的动态地或静态地执行,用于编译程序代码、用于维持软件结构、用于执行其他操作、用于优化代码或翻译代码;(2)对包括操作/调用的主程序代码(例如,已被优化/编译的应用代码)的执行;(3)对其他程序代码(例如,与主程序代码相关联的库)的执行,用于维持软件结构、用于执行其他软件相关的操作或、用于优化代码;或(4)其组合。
参考图2,描绘了低功率计算平台的实施例。在一个实施例中,低功率计算平台200包括用户端点,例如,电话、智能电话、平板电脑、超级便携式笔记本电脑、笔记本电脑、桌面型计算机、服务器、传输设备、接收设备或任何其他已知或可用的计算平台。所示出的平台描绘了多个不同的互联,用于耦合多个不同的设备。所述互联的示例性讨论在下文中提供,用于提供实现和包括内容的选项。然而,低功率平台200不要求包括或实现所描绘的互联或设备。此外,可以包括未特别示出的其他设备和互联结构。
从图的中部开始,平台200包括应用处理器205。通常这包括低功率处理器,所述低功率处理器可以是本文描述的或业界已知的处理器配置的版本。作为一个示例,处理器200被实现为片上系统(SoC)。作为具体的示出性的示例,处理器200包括基于体系结构酷睿TM的处理器,例如,来自Intel Corporation,Santa Clara,CA的可用的i3、i5、i7或另一这样的处理器。然而,应当理解,其他低功率处理器(例如,来自Advanced Micro Devices,Inc.(AMD)of Sunnyvale,CA,的可用的、来自MIPS Technologies,Inc.of Sunnyvale,CAde的基于MIPS的设计、来自ARM Holdings,Ltd许可的基于ARM的设计或其客户或其许可的客户或采用者)可以代替呈现于其它实施例(例如,Apple A5/A6处理器、Qualcomm骁龙处理器、或TI OMAP处理器)中。
图3是示出了低功率数据传输平台的实施例的图。正如所示出的,应用层、协议标准层和物理标准层显示在附图中。特别地,应用层提供了照相机串行接口(CSI)的多种实例——311、316、356、361、367、371以及376。注意,CSI可以包括用于传输数据和时钟信号的单向的差分串行接口。
协议标准层包括CS1接口310和数字串行接口(DSI)315的另一实例。DSI可以使用D-PHY物理接口来定义主处理器和外围设备之间的协议。另外,协议标准层包括DigRF接口355、UniPro接口360、低延迟接口(LLI)365、超速芯片间(SSIC)接口370以及快速外围部件互联(PCIe)375接口。
最后,物理标准层提供了D-PHY 305子层。本领域的普通技术人员可以理解,D-PHY包括物理层解决方案,其中,MIPI照相机接口、显示器串行接口以及通用高速度/低功率接口均基于所述物理层解决方案。另外,物理标准层包括M-PHY子层350,所述M-PHY子层350是D-PHY的后继,所述M-PHY子层350需要更少的引脚并且向每一个引脚(对)更多的带宽提供改进的功率效率。
多个常规计算设备在设备能够在正常运行时模式中工作之前需要引导顺序。本领域的普通技术人员可以意识到,引导(例如,启动)指代在设备上电(例如,当CPU的电源开关导通时或当计算机被重置时)之后计算机系统执行的操作的初始集合。在现代通用计算机中,引导可能花费几十秒来执行用于定位和初始化外围设备的上电自检、以及发现、加载并且启动操作系统中的任何一项。当设备准备在运行时期间执行其正常操作时,引导过程通常结束。
通常,启动出现在“视频模式”期间,而运行时出现在“命令模式”期间。引导过程最通常出现于可以不支持中断的受限环境中。在MIPI DSI应用中,显示设备可以在统一可扩展固件接口(UEFI)、EFI或BIOS环境中的预运行时期间在视频模式下工作。
在视频模式期间,显示器数据连续地由显示控制器发送至显示设备而不需要软件干预。然而,因为用于处理中断的框架通常不呈现在视频模式中,所以中断可能没有被及时处理或可能根本无法处理。
另外,多个计算设备利用非确定性的非实时操作系统(例如,Windows和Linux操作系统)。因此,这些系统中的许多无法保证实时处理显示相关的命令。本领域的普通技术人员应当理解,从需要立即关注的计算机系统中的其他请求的角度而言,显示相关的命令可以不被考虑为时间先决的。然而,因为用户直接与显示设备(例如,监视器)连接,所以希望计算系统更加实时响应于显示命令。
此外,由于由软件应用设置的帧率增加(例如,每秒22、48、60帧以及以上),显示设备需要能够处理更大量的显示信息,以避免丢帧和显示故障。因此,希望显示系统满足时间和非先决需求二者。本公开解决了所述需求。
如上所述,在基于MIPI DSI的通信系统中,显示设备通常在两个模式(视频模式或命令模式)中的一个中工作。视频模式可以被描述为用于预操作或预运行时环境中不需要任何软件干预的操作模式。视频模式可以是后引导,但通常不出现这种情况,因为视频模式通常需要更新源缓冲器并且不实现某些能量节省特征(例如,动态自刷新)。另外,视频模式使用垂直同步(“vsync”)脉冲来确定显示设备/子系统的当前状态。垂直同步脉冲还可以用于指示显示缓冲器的当前扫描的结束。可替代地,命令模式可以在运行时期间被使用。
在某些实现中,垂直同步脉冲在处理每一个帧之后或根据每秒处理的一定数量的帧来生成。例如,对于特征是60Hz帧率的计算系统,用于所述帧率的垂直同步脉冲的相对应的数量是每秒60脉冲。因此,具有更高刷新率需求的显示设备通常将具有每间隔(例如,每秒)更高的垂直同步脉冲。
在从视频到命令模式的变换期间,显示设备在较短的时间段内断电,在此期间,显示屏幕闪烁或空白。因此,从视频到命令模式的变换通常不是平滑变换。然而,因为用户体验变得越来越重要,所以闪烁和空白可能不再是可接受的。本公开提供了针对该缺点的解决方案。
可替换地,命令模式利用撕裂效应信号或中断来防止撕裂出现。本领域的普通技术人员可以意识到,撕裂效应可以表现为单个屏幕画面中的两个或多个帧(例如,部分旧帧和部分新帧)的可视伪像。撕裂可以出现在被馈送至显示设备的视频与显示设备的刷新不同步时。撕裂效应信号可以防止撕裂,这将在以下参考图5进行更详细地描述。命令模式中的操作是有利的,这是因为功率需求显著地小于在视频模式中工作的设备通常需要的功率。
图4是示出了片上系统(SoC)设备401的实施例的图,所述片上系统设备401显示了沿通信接口404(例如,MIPI通信接口404)将数据发送至显示设备402。在一个或多个实施例中,被发送至显示设备402的数据包括像素信息。本领域的普通技术人员可以意识到,像素信息可以经由来自软件应用的指令、用于改变屏幕上的亮度设置的指令和其它指令来生成。
然而,本公开不限于MIPI通信接口404并且可以等价地应用于符合本公开的其他通信协议。当设备位于显示系统中时,通信接口404可以被称为MIPI显示串行接口404。
回到图4,显示设备402可以包括本地存储缓冲器403,所述本地存储缓冲器403可以向显示系统提供多个优点。例如,本地存储缓冲器403可以在显示设备402附近存储数据和显示相关的命令。本领域的普通技术人员可以意识到,在显示设备402附近具有本地存储缓冲器403减少了业务并且由此降低了功率。
在不具有本地存储缓冲器的情况下,显示设备402的显示控制器(未示出)必须从相对地远离显示设备402的系统存储器(例如,外部存储器)访问视频数据(或命令)。在一个或多个实施例中,显示数据和命令在一个中继段中被检索。
在命令模式期间,显示设备402具有可访问的本地存储缓冲器403,从所述可访问的本地存储缓冲器403中,显示设备402执行命令用于对显示设备402的物理屏幕(未示出)进行更新。通常,当存在对帧的更新时,新帧的数据被传输至本地存储缓冲器403。在视频模式期间,显示设备402通常不具有对本地存储缓冲器的访问,并且因此显示数据需要被连续地传输。
继续向前,图5是示出了在命令模式的操作期间显示存储器500的操作的实施例的图。在本公开的一个或多个实施例中,显示存储器500包括用于将像素信息存储至每一个存储单元503中的存储器。特别地,存储单元523、533指代显示存储器500的第一单元和最后一个单元。
读指针506被示出为指向存储单元533而写指针507被示出为指向存储单元523。在一个或多个实施例中,数据读取自由读指针506所指向的存储器单元503,而数据被写入由写指针507所指向的存储单元503。例如,在图5中,数据读取自存储单元533,而数据被写入到存储单元523。
为避免撕裂效应,存储单元503中的任何一个均不应同时读取和写入。因此,为了避免命令模式中的撕裂,撕裂效应信号/中断向操作系统提供了显示屏幕上的读指针506的位置。例如,一旦读指针达到屏幕上的具体位置(例如,帧的结束端或接近帧的结束端),则撕裂效应信号508就可以立刻生成。
在一个或多个实施例中,撕裂效应信号从显示设备发送并且触发写指针507开始在帧中写入。因此,读指针506和写指针507指向相同存储器单元503的可能性显著地降低。本领域的普通技术人员可以意识到,撕裂效应信号用于读指针506和写指针507之间的同步。
图6是显示控制器硬件600的配置。显示控制器硬件600包括耦合于一般MIPI主机控制器620的显示驱动器栈610。显示器驱动栈610可以包括与操作系统和其他软件应用关于如何与显示设备650通信而进行通信的软件。在操作中,显示驱动器栈610从显示设备650通过信号路径615来接收撕裂效应信号。
当撕裂效应信号沿信号路径615传播至显示驱动器栈610时,显示数据和命令被转发至主机控制器620。主机控制器620可以翻译所述信号(例如,在MIPI中),并且然后当接收到新的帧(例如,用户移动鼠标)时可以将所传输的信号发送至显示设备650。在传统的系统中,操作系统通常在撕裂效应信号到达之后立刻发起存储器写并且当像素数据已经改变时检测用于将新帧发送至显示器的需求。
最通用的操作系统是非确定性的,并且因此在时间上不能保证撕裂效应信号/中断的处理。因此,不可预测的延迟可以产生在生成撕裂效应信号和更新显示之间。如果撕裂效应信号未被及时处理,则撕裂效应可以在显示设备的显示屏幕上观察到。
继续向前,图7是示出了符合本公开的显示控制器硬件700的实施例的图。正如以下更详细地描述的,命令调度器740的增加可以用于存储以及发送命令至主机控制器720。在示出的实施例中,命令调度器740支持如下逻辑块——控制器寄存器730、定时器731、定时器触发队列732、静态队列733、动态队列734以及总线仲裁器735。
命令调度器740可以在由显示驱动器710设置的定时器输入上发送已入队的命令。另外,命令调度器740可以在撕裂效应信号的每一次出现时发送入队的命令、预设命令以及像素数据。
命令调度器740可以支持多个操作模式。例如,命令调度器740可以基于撕裂效应信号并且基于定时器效应事件来发送命令。在一个或多个实施例中,基于撕裂效应信号事件发送的命令可以被分类为两个命令类型中的一个。第一命令类型可以包括存储在静态队列733中但永远不从队列733自动刷新的命令。因此,队列733中的命令针对每一个TE事件进行重复,直到命令从队列中移除。因此,静态队列733可以被称为“粘性队列”,这是因为根据本公开的一个或多个实施例,其中的命令从不被刷新。然而,在某些实施例中,软件可以用于从静态队列733中移除命令。
第二命令类型包括当操作系统检测到新帧时被发送至动态队列734的命令。与存储在静态队列733中的命令相反,存储在动态队列734中的命令在其被发送(经由总线仲裁器735、一般主机控制器720等)至显示设备750用于执行之后被刷新。例如,存储于动态队列734中的命令可以是一种命令类型,所述命令类型指示显示设备750在具体的时间段(例如,毫秒)之后执行具体的功能。因此,在命令的执行中建立延迟可以确保命令不被太早地发送和执行。例如,延迟命令的执行可以有助于启动时间/亮度设置/面板功率定序/等。
在操作期间,显示设备750生成撕裂效应信号,所述撕裂效应信号沿信号线715经由信号线716被传播至显示驱动器710。此外,撕裂效应信号沿信号线715被传播至命令调度器740。有利地,显示驱动器栈710可以将撕裂效应信号发送至操作系统,作为指示显示设备750正在起作用。继而,操作系统可以根据用户的输入(例如,检测到新的屏幕伪像等)将任何新的命令发送至显示驱动器栈710。最后,所述命令被发送至动态队列734。
因此,动态队列734可以存储由显示设备750针对要显示的新帧而执行的命令。因此动态队列734解决了通用操作系统面临的时间上不保证的限制。
命令调度器740确保命令被及时执行,以防止丢帧和故障的出现。在一个或多个实施例中,存储在动态队列734中的命令可以在由显示设备750执行旧命令之后连续地刷新所述旧命令(“脏帧”)。
因此,动态队列734被填充了新的命令,用于在显示设备750上显示新帧。有利地,操作系统能够在新帧和脏帧之间进行区分,以使新的、未被期望的命令被执行以显示新帧。
例如,当新帧由操作系统检测时,用于显示新帧的命令被发送至动态队列734。及时地,存储器写命令(例如,0x2c),以及与新帧相关联的像素数据被存储的存储器地址,可以被存储在动态队列734中。当撕裂效应信号被接收时,命令(或命令集)经由总线仲裁器735被传播至主机控制器720的先入先出(FIFO)缓冲器725并且最终由显示设备750执行。
由本领域的普通技术人员应当意识到的是,用于新帧的命令与撕裂效应信号是同步的,以防止显示设备750上的撕裂效应。有利地,命令调度器740根据其专用的硬件以及时的方式来调度命令并且将所述命令发送至显示设备750,而不需要来自操作系统的任何帮助。
此外,当撕裂效应信号由命令调度器740接收时,静态队列733中的命令由显示设备750执行。最重要地,静态队列733中的命令在由显示设备750执行之后不被刷新,使得队列733中的命令在每一次从命令调度器740接收到撕裂效应信号时被执行。
例如,当接收到撕裂效应信号时,存储器写命令(例如,0x2c),以及存储像素数据信息的地址,可以被发送至FIFO缓冲器725。在该示例中,存储器写命令(0x2c)在命令由显示设备750执行之后仍保留在静态队列733中。
特别地,静态队列733可以保留在显示设备750的引导期间所执行的命令。更特别地,在典型的EFI(或UEFI)或GOP环境中执行的命令可以存储在静态队列733中并且由命令调度器740进行调度。尽管显示设备可以在命令模式中排他式地操作,但是对存储在静态队列733中的命令的执行可以模拟在视频模式下的操作而不需要软件干预。
因此,命令调度器740可以用于取消在传统定义的“视频”模式和“命令”模式中的操作之间的区别,这是因为与上述两种模式中的任何一种相关联的所有的命令根据命令调度器750的配置而被优先排序并且执行,如本文所描述的。
此外,状态位可以与静态队列733和动态队列734二者相关联,用于指示命令当前是否存储在每一个相应的队列中。此外,命令还可以根据出队指令从队列733、734中移除。
在本公开的一个或多个的实施例中,静态队列733和动态队列734可以不同时将命令发送至主机控制器720。因此,仅来自队列733,734中的一个队列的命令可以在任何给定的时间被发送至总线仲裁器735。从静态队列733和动态队列734(除定时器触发队列外)发送的命令的顺序可以由总线仲裁器735使用的优先权机制来确定,正如以下将更详细地描述的。
命令调度器740还可以调度需要在特定的时间执行的命令。例如,所述类型的命令可以具有与其关联的数值部分。例如,如果用户将显示设备750的亮度(例如,背后照明)从设置A(例如,25)调整到设置B(例如,75),则亮度可以线性地增加以产生平滑的变换。因此,定时器块731可以与定时器触发队列732协同工作。定时器块731可以包括自由运行的、通用的定时器。
此外,存在一些命令,所述命令应当在由显示设备750执行之前延迟。例如,命令调度器740可以建立在两个或多个命令执行之间的延迟,以保存和延长显示设备750的生存期。
对于基于定时器中断的命令,显示驱动器栈710可以写入用于在定时器触发队列732中发送的命令以及需要被发送用于执行所述命令的持续时间。当定时器的值与时间戳相匹配时,命令可以被传送至主机控制器FIFO725并且横跨显示设备750发送,以用于执行。
因此,命令调度器740可以调度各种类型的命令,例如,对时间敏感的命令(例如,需要被延迟并且存储在时间触发队列732中的命令)。命令调度器740还可以存储始终在接收到每一个撕裂效应信号时执行的命令(存储于静态队列733中的命令)。此外,与对于新帧的操作系统的检测相关并且在TE中断信号的事件处执行的命令,存储在动态队列734中。
沿附图移动,总线仲裁器735选择定时器触发队列731、静态队列733或动态队列734,用于从上述任何一个队列中接收命令。因此,只有队列733、734中的一个可以在任何给定的时间将命令发送至总线仲裁器735。在一个或多个实施例中,总线仲裁器735包括复用器部件(未示出),用于从定时器触发的、静态队列和动态队列731、733、734中选择命令。在一个或多个实施例中,总线仲裁器735根据如下优先权机制的顺序来选择命令:首先是动态队列734;然后是静态队列733,并且第三是定时器触发队列731。
然而,本领域的普通技术人员可以意识到,本公开不限于其中包括复用器部件的总线仲裁器735。可以使总线仲裁器735能够选择性地从静态队列733或动态队列734中选择命令的总线仲裁器735中的任何部件均在本公开的精神和范围中。
及时地,在总线仲裁器735从静态队列733或动态队列734接收命令之后,总线仲裁器735将命令写入主机控制器720。主机控制器720可以将命令翻译为显示设备750可以读取的格式。在一个或多个实施例中,主机控制器720是通用的MIPI主机控制器720,并且因此根据MIPI来对命令进行翻译。当从通用MIPI主机控制器720接收命令时,显示设备750执行所述命令。
命令调度器740还可以包括控制寄存器730。在一个实现中,控制寄存器730提供用于命令调度器740的总体配置。例如,控制寄存器730可以提供如下特征中的任何特征——强制重置命令调度器740、强制刷新队列、启用或禁用任何队列,以及设置总线仲裁器735的优先级。控制寄存器730还可以提供队列的状态(例如,满/未满/空等)。
图8是示出了符合本公开的显示控制器硬件800的另一实施例的图。在附图中所示出的实现中,命令调度器840可以支持模拟的视频模式,正如以下将更详细地描述的。
在本公开的一个或多个实施例中,当命令在接收到每一个撕裂效应信号时被发送时,显示驱动器栈810选择模拟的视频模式位,以启用静态队列833。当启用静态队列833时,动态队列834被禁用,这是因为根据本公开的一个或多个实施例,队列833、834中只有一个能够在任何给定的时间被启用。禁用静态队列或动态队列833、834中的任何一个可以由非门860来实现。
在一个实施例中,当触发撕裂效应信号时,静态队列833的内容被复制到主机控制器FIFO 825(由总线仲裁器835协调)并且及时发送至显示设备850。因此,当下一撕裂效应信号出现时相同的复制动作被执行,直到显示驱动器810取消选择模拟视频模式位。
另外,当与新帧相关联的命令在接收到TE信号时被发送时,显示驱动器栈810选择模拟视频模式位的反码,来启用动态队列834。除了在某些实例中的任何相关联的像素数据的存储器地址之外,显示驱动器然后将命令写入动态队列834。一旦触发撕裂效应信号,动态队列834中的命令就被传送至主机控制器FIFO 825并且及时地由显示设备850执行。
图9是示出了使用撕裂效应信号来指示显示设备的功能的方法的流程图900的图。流程图900中公开的方法可以同时应用于图7和图8。
块901提供了在显示驱动器栈从显示器设备接收撕裂效应信号。如上所述,显示设备可以在读指针达到显示屏幕上的具体的位置时发送撕裂效应信号。接下来,响应于接收撕裂效应信号,将撕裂效应信号转发至操作系统(块902),作为指示:显示设备正在起作用。
图10是示出了在显示系统中调度命令的另一方法的流程图1000的图。流程图1000中公开的方法可以应用于图7和图8二者。
块1001提供了在显示驱动器栈接收撕裂效应信号。在一个或多个实施例中,撕裂效应信号从显示设备生成并且被发送。接下来,响应于接收撕裂效应信号,将所述撕裂效应信号转发至操作系统(块1002)。
进一步,根据块1003,从显示驱动器栈向命令调度器发送多个命令。所述多个命令可以包括用于在引导环境期间执行的至少一个命令以及用于在运行时期间执行的至少一个命令。及时地,所述命令从命令调度器被发送至主机控制器(块1004)。在一个或多个实施例中,命令被发送至主机控制器的FIFO缓冲器,使得命令以在FIFO缓冲器中所接收的顺序执行。
本公开解决了本领域的当前状态中存在的多个限制。例如,符合本公开的系统和方法满足了及时地执行与新帧相关联的命令的挑战。命令调度器可以包括多个队列,用于在其中存储命令。另外,软件应用可以在任何时间填充队列、选择撕裂效应信号触发器、以及退出,以防止出现撕裂,即使对于非实时操作系统而言。
因为命令调度器接收命令并且转发命令以用于执行而不需要软件干预,所以在从引导变换为运行时期间在显示设备的屏幕上不会出现闪烁或空白。此外,在命令调度器中对定时器块的增加可以用于延迟发送命令。这种能力对于在休眠或待用模式期间的面板功率定序尤其有用,由此消除了操作系统等待发出定序命令的需要。此外,符合本公开的显示控制器硬件系统可以每个周期发出多个更新,而不考虑主机控制器的当前状态(例如,控制器阻塞)。
本公开不限于命令调度器的硬件配置。因此,本公开能够包括命令调度器的软件配置。例如,符合本公开的显示器硬件系统可以包括微控制器,所述微控制器利用软件程序来将各种类型的命令发送至主机控制器,以用于由显示设备的后续执行。
本公开包括一种系统,所述系统包括显示驱动器栈和耦合于显示驱动器栈的调度器,其中所述调度器用于从驱动器栈接收至少一个命令。所述调度器用于将至少一个命令入队并且用于对在引导环境期间和在运行时期间要执行的多个命令进行调度。
所述系统进一步包括耦合于调度器的主机控制器,其中,所述主机控制器用于从调度器接收命令。调度器可以包括定时器触发队列、静态队列以及动态队列,所有上述队列都从显示驱动器栈接收命令。所述系统可以进一步包括耦合于调度器的显示设备,以执行从主机控制器接收的命令。主机控制器包括MIPI主机控制器。
主机控制器可以包括FIFO缓冲器,用于从调度器接收命令。显示驱动器栈可以接收撕裂效应信号,所述撕裂效应信号继而被转发至操作系统,作为指示:耦合于显示驱动器栈的设备正在起作用。
调度器还可以在由显示驱动器栈设置的定时器输入上发送入队的命令。另外,所述调度器还可以在接收TE中断时发送入队的命令。
本公开进一步包括一种装置,所述装置包括用于与显示驱动器和主机控制器连接的命令调度器。所述命令调度器可以包括但不限于第一队列,所述第一队列用于存储在撕裂效应信号事件时执行的命令。在一个或多个实施例中,命令调度器包括第二队列,所述第二队列用于存储在存储器地址的固定集合中写入数据的命令的固定集合。另外,命令调度器包括第三队列,所述第三队列用于存储在所述命令执行之前要被延迟的命令。
该装置还可以包括定时器单元,所述定时器单元用于将时间相关的触发器送至第三队列。进一步,装置包括耦合于第一队列、第二队列以及第三队列的总线仲裁器单元,所述总线仲裁器单元用于根据预定义的优先权机制来从所述队列中选择命令。在一个或多个实施例中,总线仲裁器单元通信地耦合于主机控制器,使得主机控制器从总线仲裁器单元接收命令。
命令调度器可以进一步包括设置总线仲裁器单元的优先权机制的控制寄存器。另外,所述调度器可以包括耦合于第一队列和第二队列的非门。
在某些实施例中,第一队列存储在运行时期间执行的命令。第二队列存储在统一可扩展固件接口(UEFI)、EFI或基本输入/输出系统(BIOS)环境中执行的命令。第三队列可以存储用于设置显示设备的亮度的命令。
命令调度器进一步包括控制寄存器,所述控制寄存器用于强制重置调度器、强制刷新第一队列、第二队列或第三队列、启用或禁用第一队列、第二队列或第三队列,并且提供第一队列、第二队列或第三队列的状态。
本公开进一步包括一种方法,所述方法包括在显示驱动器栈接收撕裂效应信号。响应于接收撕裂效应信号,将所述撕裂效应信号转发至操作系统。进一步,将多个命令从显示驱动器栈发送至调度器,其中,多个命令包括在引导环境期间要执行的至少一个命令以及在运行时期间要执行的至少一个命令。此外,该方法包括将多个命令从调度器发送到主机控制器。
此外,将多个命令从显示驱动器栈发送到调度器包括,将命令发送至调度器中的多个队列。此外,该方法包括根据由调度器的控制寄存器部件设置的预定义的优先权将多个命令从调度器发送到主机控制器。
本公开进一步公开了一种装置,所述装置包括用于显示器接口的主机控制器和调度器。调度器包括第一队列,用于存储在接收撕裂效应(TE)信号事件时从其中被刷新并且被提供至主机控制器的命令。所述调度器进一步包括第二队列,用于将其内容提供给主机控制器。第二队列的内容响应于TE信号事件而不被刷新。所述调度器还可以在第一队列和第二队列之间进行选择,以支持模拟的视频模式。
所述调度器包括第一队列,用于存储在撕裂效应信号事件时执行的命令;第二队列,用于存储在存储器地址的固定集合中写入数据的命令的固定集合;以及第三队列,用于存储在上述命令执行之前被延迟的命令。最后,所述主机控制器包括用于从调度器接收命令的FIFO缓冲器。
尽管本公开结合有限数量的实施例进行了描述,但是本领域的技术人员应当意识到其多种修改和变型。所附的权利要求是要涵盖落在本公开的真正精神和范围内的所有这样的修改和变型。
设计可以经历各种阶段,从创建到模拟到制造。表示设计的数据可以以多种方式来表示所述设计。第一,正如模拟中所使用的,可以使用硬件描述语言或另一功能描述语言来表示硬件。此外,具有逻辑和/或晶体管栅极的电路级模型可以在设计过程的某些阶段产生。此外,在某些阶段,多数设计达到了表示硬件模型中的各种设备的物理放置的数据的级别。在使用传统半导体制造工艺的情况下,表示硬件模型的数据可以是指定多种特征在用于生成集成电路的掩膜的不同的掩膜层上出现或未出现的数据。在设计的任何表示中,数据可以以任何形式的机器可读介质进行存储。存储器或磁存储装置或光存储装置(例如,盘),可以是机器可读介质,用于存储经由光或电波调制传输的或被生成用于传输这样的信息的信息。当传输指示或承载代码或设计的电载波时,达到以下功能的程度:执行对电信号的复制、缓冲或重传输,生成新的副本。因此,通信提供商或网络提供商可以在有形的、机器可读介质中至少暂时性地存储制品(例如,被编码为载波的信息),以具体实施本公开的实施例的技术。
如本文所使用的模块指代硬件、软件和/或固件的任何组合。作为示例,模块包括硬件,例如,与用于存储适用于由微控制器执行的代码的非暂时性介质相关联的微控制器。因此,在一个实施例中,对模块的引用指代特别地被配置为识别和/或执行被保持在非暂时性介质上的代码的硬件。此外,在另一实施例中,模块的使用指代包括代码的非暂时性介质,所述代码特别适用于由微控制器执行,以实现预定的操作。并且正如可以推断的,在另一实施例中,术语模块(在该示例中)可以指代微控制器和非暂时性介质的组合。通常,被示出为独立的模块边界经常变化并且可能重叠。例如,第一模块和第二模块可以共享硬件、软件、固件或其组合,而潜在地保留某些独立的硬件、软件或固件。在一个实施例中,术语逻辑的使用包括硬件,例如、晶体管、寄存器或其他硬件(例如,可编程逻辑设备)。
在一个实施例中,短语“用于”或“被配置用于”的使用指代布置、放置在一起、制造、提供用于销售、引进和/或设计装置、硬件、逻辑或元件,以执行所设计的或确定的任务。在该示例中,如果不是正在工作的装置或其元件被设计、耦合和/或互联用于执行所述被指派的任务,则不是正在工作的装置或其元件仍然“被配置用于”执行所指派的任务。仅作为示出性的示例,逻辑门可以在工作期间提供0或1。但“被配置用于”向时钟提供使能信号的逻辑门不包括可以提供1或0的每一个潜在的逻辑门。相反,逻辑门是以某种方式耦合的一种逻辑门,所述某种方式是在操作期间1或0输出用于使能时钟。再次注意,术语“被配置用于”的使用不需要操作,但相反关注的是装置、硬件和/或元件的潜在状态,其中在所述潜在的状态中,装置、硬件和/或元件被设计为当装置、硬件和/或元件在工作时,执行特定的任务。
此外,在一个实施例中,短语“能够/用于”和/或“可操作用于”的使用,指代以如下方式设计的某些装置、逻辑、硬件和/或元件:以指定方式使能装置、逻辑、硬件和/或元件的使用。注意,在一个实施例中,以上对用于、能够用于、或可操作用于的使用指代装置、逻辑、硬件和/或元件的潜在状态,其中装置、逻辑、硬件和/或元件以如下方式进行设计而非进行工作:以指定的方式使能装置的使用。
如本文所使用的,值包括数量、状态、逻辑状态或二进制逻辑状态的任何公知的表示。通常,逻辑级、逻辑值或合乎逻辑的值的使用还被指代为1和0,其仅表示二进制逻辑状态。例如,1指代高逻辑级,而0指代低逻辑级。在一个实施例中,存储单元(例如,晶体管或闪存单元),能够保持单个逻辑值或多个逻辑值。然而,计算机系统中的值的其他表示已经被使用。例如,十进制数十还可以被表示为二进制值1010以及十六进制的字母A。因此,值包括能够保存在计算机系统中的信息的任何表示。
此外,状态可以由值或值的部分表示。作为示例,第一值(例如,逻辑1)可以表示默认或初始状态,而第二值(例如,逻辑零)可以表示非默认状态。此外,在一个实施例中,术语重置和设置分别指代默认的和更新的值或状态。例如,默认值潜在地包括高逻辑值,即重置,而更新值潜在地包括低逻辑值,即设置。注意,值的任何组合可以用于表示任何数量的状态。
以上阐述的方法、硬件、软件、固件或代码的实施例可以经由存储在机器可访问的、机器可读的、计算机可访问的或计算机可读的介质中的由处理元件可执行的指令或代码来实现。非暂时性机器可访问/可读的介质包括以由机器(例如,计算机或电子系统)可读的形式提供(即,存储和/或传输)信息的任何机制。例如,非暂时性机器可访问介质,包括随机存取存储器(RAM),例如,静态RAM(SRAM)或动态RAM(DRAM):ROM;磁或光存储介质;闪速存储器设备;电存储设备;光存储设备;声存储设备;用于保持从暂时性(传播的)信号(例如,载波、红外信号、数字信号)接收的信息的其他形式的存储设备;等,其区别于可以从中接收信息的非暂时性介质。
用于程序逻辑以执行本公开的实施例的指令可以存储在系统内的存储器中,所述存储器例如是DRAM、高速缓存、闪速存储器或其他存储装置。此外,指令可以经由网络或作为其他计算机可读介质来进行发布。因此,机器可读介质可以包括用于以由机器(例如,计算机)可读的形式存储或传输信息的任何机制,但不限于,软盘、光盘、压缩盘、只读存储器(CD-ROM)、以及磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、闪速存储器或用于在互联网中经由电、光、声音的或其他形式的传播信号(例如,载波、红外信号,数字信号等)传输信息的有形的、机器可读存储装置。因此,计算机可读介质包括适用于以由机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的有形的机器可读介质。
贯穿说明书中对“一个实施例”或“实施例”的引用表示结合实施例描述的特定的特征、结构或特性包括在本公开的至少一个实施例中。因此,贯穿说明书中的各个地方的短语“在一个实施例中”或“在某些实施例中”的出现并不一定全部指代同一实施例。此外,具体的特征、结构或特性可以任何合适的方式组合在一个或多个实施例中。
在之前的说明书中,已参考具体的示例性实施例给出了详细描述。然而,很明显的是,可以对其进行各种修改和变化,而不偏离所附的权利要求书中所阐述的本公开的更广泛的精神和范围。因此,说明书和附图应被视为是示出性的而非限制性的。此外,前文对实施例和其他示例性语言的使用不一定指代同一实施例或同一示例,但可以指代不同的以及独特的实施例,也可能为同一实施例。

Claims (29)

1.一种用于显示设备的命令调度的系统,包括:
显示驱动器栈,其用于接收撕裂效应信号;
耦合于所述显示驱动器栈的调度器,其中,所述调度器用于从所述驱动器栈接收命令;
其中,所述调度器包括定时器触发队列、静态队列以及动态队列,其用于将所述命令入队,并且用于基于接收到所述撕裂效应信号来对要在引导环境期间和在运行时期间执行的所述命令进行调度;
其中,所述定时器触发队列用于存储要被在执行之前延迟的所述命令的第一集合;
其中,所述静态队列用于存储要在引导过程期间被执行在执行之后保持的所述命令的第二集合;
其中,所述动态队列用于存储指示显示设备在特定的时间段之后执行特定功能并且在执行之后被移除的所述命令的第三集合;以及
耦合于所述调度器的主机控制器,其中,所述主机控制器用于从所述调度器接收所述命令。
2.根据权利要求1所述的系统,进一步包括被耦合用于执行从所述主机控制器接收的命令的显示设备。
3.根据权利要求1所述的系统,其中,所述主机控制器包括MIPI主机控制器。
4.根据权利要求1所述的系统,其中,所述命令包括显示命令。
5.根据权利要求1所述的系统,其中,所述主机控制器包括用于从所述调度器接收命令的FIFO缓冲器。
6.根据权利要求1所述的系统,其中,所述显示驱动器栈能够接收撕裂效应信号,所述撕裂效应信号继而转发至操作系统作为关于耦合于所述显示驱动器栈的设备正在起作用的指示。
7.根据权利要求1所述的系统,其中,所述调度器进一步用于在由所述显示驱动器栈设置的定时器输入上发送排入队列的命令。
8.根据权利要求1所述的系统,其中,所述调度器进一步用于在撕裂效应中断时发送排入队列的命令。
9.一种用于显示设备的命令调度的装置,包括:
命令调度器,用于与显示驱动器和主机控制器相连接,所述命令调度器包括但不限于:
第一队列,用于存储要在撕裂效应信号事件时执行并且在执行之后被移除的命令;
第二队列,用于存储用于在引导过程期间在存储器地址的固定集合中写入数据的命令的固定集合;以及
第三队列,用于存储在这些命令被执行之前要被延迟的命令。
10.根据权利要求9所述的装置,进一步包括定时器单元,用于将与时间相关的触发器发送至所述第三队列。
11.根据权利要求9所述的装置,进一步包括耦合于所述第一队列、第二队列以及第三队列的总线仲裁器单元,所述总线仲裁器单元用于根据预定义的优先权机制从这些队列中选择命令。
12.根据权利要求11所述的装置,其中,所述总线仲裁器单元通信地耦合于主机控制器,使得所述主机控制器从所述总线仲裁器单元接收命令。
13.根据权利要求11所述的装置,其中,所述命令调度器进一步包括设置所述总线仲裁器单元的所述优先权机制的控制寄存器。
14.根据权利要求9所述的装置,进一步包括耦合于所述第一队列和所述第二队列的非门。
15.根据权利要求9所述的装置,其中,所述第一队列存储要在运行时期间执行的命令。
16.根据权利要求9所述的装置,其中,所述第二队列存储要在统一可扩展固件接口(UEFI)、EFI、基本输入/输出系统(BIOS)以及环境中执行的命令。
17.根据权利要求9所述的装置,其中,所述第三队列存储用于设置显示设备的亮度的命令。
18.根据权利要求9所述的装置,其中,所述命令调度器进一步包括用于执行以下功能中的至少一个的控制寄存器:强制重置所述调度器、强制刷新所述第一队列、第二队列或第三队列、启用或禁用所述第一队列、第二队列或第三队列,以及提供所述第一队列、第二队列或第三队列的状态。
19.一种用于显示设备的命令调度的方法,包括:
在显示驱动器栈接收撕裂效应信号;
响应于接收到所述撕裂效应信号,将所述撕裂效应信号转发至操作系统;
将多个命令从所述显示驱动器栈发送至调度器,其中,所述多个命令包括要被在执行之前延迟的至少一个命令、要在引导过程期间被执行在执行之后保持的至少一个命令以及指示显示设备在特定的时间段之后执行特定功能并且在执行之后被移除的至少一个命令并且所述多个命令要在引导环境期间以及在运行时期间执行;以及
将所述多个命令从所述调度器发送至主机控制器。
20.根据权利要求19所述的方法,其中,转发所述撕裂效应信号作为关于耦合于所述驱动器栈的显示设备正在起作用的指示。
21.根据权利要求19所述的方法,其中,将所述多个命令从所述显示驱动器栈发送至所述调度器包括:将所述命令发送至所述调度器中的多个队列。
22.根据权利要求19所述的方法,其中,根据由所述调度器的控制寄存器部件设置的预定义的优先权,将所述多个命令从所述调度器发送至所述主机控制器。
23.一种用于显示设备的命令调度的装置,包括:
主机控制器;以及
用于显示接口的调度器,所述调度器包括第一队列和第二队列,所述第一队列用于存储在撕裂效应TE信号事件时被刷新并且提供至所述主机控制器的命令,所述第二队列用于将其内容提供至主机控制器并且响应于TE信号事件而不被刷新,其中,所述调度器用于在所述第一队列和所述第二队列之间进行选择,以支持模拟视频模式。
24.根据权利要求23所述的装置,其中,所述调度器包括:第一队列,所述第一队列存储要在撕裂效应信号事件时执行的命令;第二队列,用于存储用于在存储器地址的固定集合中写入数据的命令的固定集合;以及第三队列,用于存储在这些命令被执行之前要被延迟的命令。
25.根据权利要求23所述的装置,其中,所述调度器进一步包括用于执行以下功能中的至少一个的控制寄存器:强制重置所述调度器、强制刷新所述第一队列、第二队列或第三队列、启用或禁用所述第一队列、第二队列或第三队列,以及提供所述第一队列、第二队列或第三队列的状态。
26.根据权利要求23所述的装置,其中,所述主机控制器包括用于从所述调度器接收命令的FIFO缓冲器。
27.包括机器可读指令的机器可读存储装置,当执行所述机器可读指令时,用于实现任何前面的权利要求所要求保护的方法或完成任何前面的权利要求所要求保护的装置。
28.一种用于显示设备的命令调度的装置,包括用于执行任何前面的权利要求所要求保护的方法的单元。
29.一种用于显示设备的命令调度的装置,包括:
用于存储指令的存储器;以及
耦合到所述存储器的处理器,所述指令由所述处理器执行,以用于执行任何前面的权利要求所要求保护的方法或完成任何前面的权利要求所要求保护的装置。
CN201410810593.8A 2013-11-27 2014-10-27 对于显示设备的命令调度 Active CN104679582B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/092,011 2013-11-27
US14/092,011 US20150145875A1 (en) 2013-11-27 2013-11-27 Command scheduler for a display device

Publications (2)

Publication Number Publication Date
CN104679582A CN104679582A (zh) 2015-06-03
CN104679582B true CN104679582B (zh) 2019-01-11

Family

ID=52003554

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410810593.8A Active CN104679582B (zh) 2013-11-27 2014-10-27 对于显示设备的命令调度

Country Status (3)

Country Link
US (2) US20150145875A1 (zh)
EP (1) EP2879050A3 (zh)
CN (1) CN104679582B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106557391A (zh) * 2015-09-29 2017-04-05 中兴通讯股份有限公司 显示屏处理方法及装置
CN105550152B (zh) * 2015-12-11 2018-03-30 中国航空工业集团公司西安航空计算技术研究所 一种基于时间的gjb289数据总线命令调度电路及方法
CN106027942A (zh) * 2016-05-20 2016-10-12 广东欧珀移动通信有限公司 一种帧率控制方法及装置
US10540808B2 (en) 2016-09-16 2020-01-21 Intel Corporation Hierarchical Z-culling (HiZ) optimization for texture-dependent discard operations
US20180082468A1 (en) * 2016-09-16 2018-03-22 Intel Corporation Hierarchical Z-Culling (HiZ) Optimized Shadow Mapping
US10694197B2 (en) 2018-01-17 2020-06-23 Qualcomm Incorporated Composition based dynamic panel mode switch
CN108509365B (zh) * 2018-01-23 2020-08-04 东莞市爱协生智能科技有限公司 一种dbi的数据传输方法及系统
US10830479B2 (en) * 2018-05-18 2020-11-10 Johnson Controls Technology Company HVAC zone schedule management systems and methods
US10732897B2 (en) * 2018-07-03 2020-08-04 Western Digital Technologies, Inc. Quality of service based arbitrations optimized for enterprise solid state drives
CN109032664B (zh) * 2018-07-04 2021-08-06 中国人民解放军国防科技大学 实时追踪微体系结构级队列队满状态的方法及系统
US10503438B1 (en) * 2018-08-24 2019-12-10 Micron Technology, Inc. Memory sub-system supporting non-deterministic commands
US11094296B2 (en) * 2018-12-05 2021-08-17 Google Llc Varying display refresh rate
CN111464420B (zh) * 2019-01-22 2021-05-25 清华大学 线长自适应时间触发调度方法和装置
US11327912B2 (en) * 2019-09-12 2022-05-10 Qualcomm Incorporated Controlling the application time of radio frequency front end triggers based on execution of sequences
CN116564227B (zh) * 2023-07-10 2023-09-29 禹创半导体(深圳)有限公司 Oled驱动显示芯片及其存储器控制方法、结构

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5426445A (en) * 1994-02-24 1995-06-20 Hewlett-Packard Company Synchronous clear for CRT memory buffer
US5913921A (en) * 1996-07-12 1999-06-22 Glenayre Electronics, Inc. System for communicating information about nodes configuration by generating advertisements having era values for identifying time reference for which the configuration is operative
US6366589B1 (en) * 1998-04-27 2002-04-02 3Com Corporation Multiple parallel asymmetric interfaces with reversed asymmetric links
US6753869B2 (en) * 2001-12-11 2004-06-22 Lockheed Martin Corporation Controlled responsiveness in display systems
US6907482B2 (en) * 2001-12-13 2005-06-14 Microsoft Corporation Universal graphic adapter for interfacing with hardware and means for encapsulating and abstracting details of the hardware
US7092360B2 (en) * 2001-12-28 2006-08-15 Tropic Networks Inc. Monitor, system and method for monitoring performance of a scheduler
AU2003249168A1 (en) * 2002-07-11 2004-02-02 Raytheon Company System and method for asynchronous storage and playback of a system state
US7085892B2 (en) * 2003-06-17 2006-08-01 International Business Machines Corporation Method, system, and program for removing data in cache subject to a relationship
US7730157B2 (en) * 2005-02-03 2010-06-01 The Trustees Of Columbia University In The City Of New York Methods, media, and systems for displaying information on a thin-client in communication with a network
US20070040788A1 (en) * 2005-08-17 2007-02-22 Texas Instruments, Inc. Modular Graphics Stack With Video Support
CN1828541A (zh) * 2006-04-07 2006-09-06 浙江大学 Java操作系统中定时任务的实现方法
JP4439491B2 (ja) * 2006-05-24 2010-03-24 株式会社ソニー・コンピュータエンタテインメント マルチグラフィックスプロセッサシステム、グラフィックスプロセッサおよびデータ転送方法
JP4577288B2 (ja) * 2006-09-27 2010-11-10 ソニー株式会社 情報処理装置および方法、プログラム、並びに記録媒体
KR100817095B1 (ko) * 2007-01-17 2008-03-27 삼성전자주식회사 비동기 인터페이스 방식에서 계조 보정 처리를 수행할 수있는 디스플레이 드라이버 및 디스플레이 드라이빙 방법
US8139596B2 (en) * 2007-06-15 2012-03-20 International Business Machines Corporation Communicating prioritized messages to a destination queue from multiple source queues using source-queue-specific priority values
US9645845B2 (en) * 2007-09-27 2017-05-09 Sap Se Triggering job execution in application servers based on asynchronous messages sent by scheduling tasks
WO2009074956A1 (en) * 2007-12-10 2009-06-18 Fireflight (Pty) Ltd Method and system for managing a software application on a mobile computing device
US7974190B2 (en) * 2009-02-12 2011-07-05 Micrel, Inc. Dynamic queue memory allocation with flow control
US8411116B2 (en) * 2009-09-11 2013-04-02 Chihao Xu Method, system and apparatus for power saving backlight
US8947420B2 (en) * 2011-05-27 2015-02-03 Nokia Corporation Processing image content for content motion or touch input
US9489166B2 (en) * 2011-08-19 2016-11-08 Novatek Microelectronics Corp. Data transmission method and display driving system
DE102012107954A1 (de) * 2011-09-02 2013-03-07 Samsung Electronics Co. Ltd. Anzeigetreiber, Betriebsverfahren davon, Host zum Steuern des Anzeigetreibers und System mit dem Anzeigetreiber und dem Host
US20130262788A1 (en) * 2012-03-29 2013-10-03 Lsi Corporation Systems and Methods for External Priority Controlled Data Transfer
WO2014074704A1 (en) * 2012-11-09 2014-05-15 Insyde Software Corp. Bios user interface control using mobile device
US9337952B2 (en) * 2013-04-22 2016-05-10 Intel Corporation Embedded resilient buffer
US9165531B2 (en) * 2013-05-27 2015-10-20 Google Technology Holdings LLC System for detecting display driver error when failing to receive a synchronization signal and method thereof
US9892480B2 (en) * 2013-06-28 2018-02-13 Intel Corporation Aborting graphics processor workload execution

Also Published As

Publication number Publication date
US10339625B2 (en) 2019-07-02
CN104679582A (zh) 2015-06-03
EP2879050A2 (en) 2015-06-03
US20170262958A1 (en) 2017-09-14
US20150145875A1 (en) 2015-05-28
EP2879050A3 (en) 2015-10-14
EP2879050A8 (en) 2016-02-24

Similar Documents

Publication Publication Date Title
CN104679582B (zh) 对于显示设备的命令调度
TWI628594B (zh) 用戶等級分叉及會合處理器、方法、系統及指令
JP7339223B2 (ja) フレキシブルなオンダイファブリックインターフェイス
TWI522792B (zh) 用以產生要求之設備、用於記憶體要求之方法、及運算系統
JP6147840B2 (ja) ルートポート及びRPIE(RootPortIntegratedEndpoint)のレジューム時間を向上させるための方法、装置及びシステム
CN104239040B (zh) 用于n相数据映射的装置、系统和方法
JP6240964B2 (ja) 装置、方法、およびシステム
KR101814412B1 (ko) 데이터 버퍼와 연관된 스누프 필터링의 제공
JP6450705B2 (ja) 永続コミットプロセッサ、方法、システムおよび命令
KR101775569B1 (ko) 가상 재시도 큐
CN108701040A (zh) 用户级别线程暂停的方法、设备、和指令
JP2016207232A (ja) 共有メモリへのアクセスの同期を緩和するプロセッサ、方法、システム、及びプログラム
CN105492989B (zh) 用于管理对时钟进行的门控的装置、系统、方法和机器可读介质
US20140375658A1 (en) Processor Core to Graphics Processor Task Scheduling and Execution
CN104503830A (zh) 用于引导异构系统并呈现对称核视图的方法
CN110199242A (zh) 基于使用参数配置处理器的基本时钟频率
CN107003971A (zh) 用于高性能互连中的嵌入式流通道的方法、装置、系统
CN109643299A (zh) 在具有现有tlp定义的pcie上的持久存储器写入语义
JP2021090188A (ja) ストリーミングファブリックインタフェース
CN107567614A (zh) 用于对根据关键度被分组的指令的缕程的执行的多核处理器
Ventroux et al. Scmp architecture: an asymmetric multiprocessor system-on-chip for dynamic applications
Linhares et al. NOCA—A Notification-Oriented Computer Architecture: Prototype and Simulator
US20220197803A1 (en) System, apparatus and method for providing a placeholder state in a cache memory
US11954492B1 (en) Fence enforcement techniques based on stall characteristics
US20240095031A1 (en) Thread Channel Deactivation based on Instruction Cache Misses

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