用于更新缓冲器的方法和系统转让专利

申请号 : CN200580047188.4

文献号 : CN101449255B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 乔治·A·威利布赖恩·斯蒂尔

申请人 : 高通股份有限公司

摘要 :

本发明涉及用于更新缓冲器的方法和系统。在一个方面,本发明提供一种用于更新缓冲器的方法,所述方法包含策略上对所述缓冲器进行写入以启用对所述缓冲器的同时读取和写入。所述方法消除了对双缓冲的需要,由此与常规缓冲方法相比产生实施成本和空间的节省。当所述方法用于更新与显示器相关联的帧缓冲器时,其还防止图像撕裂,但不限于此类应用。在另一方面,本发明提供用于通过通信链路启用缓冲器更新的有效机制。在一个实例中,本发明提供一种通过通信链路转继时序信息的方法。

权利要求 :

1.一种用于通过处理器中的控制电路来更新缓冲器的方法,所述缓冲器具有与显示器相关联的多个线以防止图像撕裂,所述方法包括:(a)确定所述缓冲器中的读取线位置,所述读取线位置指示当前正从所述缓冲器读取的线,所述读取线位置包括像素位置;

(b)基于所述读取线位置,将所述缓冲器至少分割为可安全更新的第一部分和不得更新的第二部分;以及(c)在所述第一部分的线处写入数据以更新所述缓冲器,其中所述线基于所述读取线位置而遵循所述第二部分,其中所述缓冲器的所述第一部分包括以下各项中的至少一者:(i)所述缓冲器的已在所述缓冲器的最近读取周期中读取的线,以及(ii)所述缓冲器的可基于所述读取线位置而更新的线;以及其中所述缓冲器的所述第二部分包括所述缓冲器的不能在所述读取线位置到达线之前基于缓冲器读取速度和缓冲器写入速度而更新的所述线。

2.根据权利要求1所述的方法,其中通过确定读取指针值来确定所述读取线位置。

3.根据权利要求1所述的方法,其中(ii)进一步包括所述缓冲器的可在所述读取线位置到达线之前基于缓冲器读取速度和缓冲器写入速度而更新的所述线。

4.根据权利要求1所述的方法,其中所述缓冲器的所述第二部分进一步包括已在所述缓冲器的最近读取周期中更新的线。

5.根据权利要求1所述的方法,其中所述缓冲器由第一处理器进行写入且由第二处理器进行读取。

6.根据权利要求5所述的方法,其中所述第一和第二处理器通过通信链路进行远程通信。

7.根据权利要求6所述的方法,其中所述第一处理器基于所述第一处理器处的第一事件来更新所述缓冲器,所述第一事件由所述第二处理器处的第二事件触发。

8.根据权利要求7所述的方法,其进一步包括:

(d)通过对寄存器进行写入以实现触发基于所述第二事件引起所述第一事件的中断来调度所述第一事件;以及(e)基于所述缓冲器的所述读取线位置来触发所述第二处理器处的第二事件。

9.根据权利要求8所述的方法,其中当所述通信链路处于休眠模式时,所述第一事件表示链路唤醒事件。

10.根据权利要求6所述的方法,其中所述第一和第二处理器表示移动显示数字接口(MDDI)链路的主机和客户端控制器。

11.根据权利要求7所述的方法,其中所述第一处理器表示移动台调制解调器(MSM)基带处理器,且其中所述第二处理器表示LCD控制器。

12.根据权利要求11所述的方法,其中所述缓冲器表示用于刷新LCD显示器的帧缓冲器。

13.根据权利要求12所述的方法,其中避免了所述显示器中的图像撕裂。

说明书 :

用于更新缓冲器的方法和系统

技术领域

[0001] 本发明大体上涉及用于更新缓冲器的方法和系统。更明确地说,本发明涉及用于通过通信链路更新缓冲器的方法和系统。

背景技术

[0002] 在互连技术领域中,对于尤其与视频演示有关的不断增加的数据速率的需求持续增长。
[0003] 移动显示数字接口(MDDI)是具有成本效益的、低功率消耗的传递机制,其实现主机与客户端之间经由短程通信链路的甚高速数据传递。MDDI最少只需要四根引线加上用于递送最大带宽达每秒3.2吉比特的双向数据传递的功率。
[0004] 在一个应用中,MDDI通过显著减少穿过手持机的铰链以使数字基带控制器与LCD显示器和/或相机互连的引线的数目,来增加可靠性并减少翻盖电话(clamshell phone)的功率消耗。此引线的减少还允许手持机制造商通过简化翻盖或滑盖手持机设计来降低开发成本。
[0005] 在通过MDDI链路控制LCD显示器时,出现的一个问题与当显示器刷新时的图像闪烁有关。通常,需要长余辉转换(long persistence conversion)或高于人眼可感知的速率的刷新速率。当图像似乎要移动时,长余辉转换导致图像拖尾效应(image smearing)。因此,需要显示器具有高刷新速率。然而,出现的典型问题是图像撕裂。所述问题在于当以高速率刷新显示器时,与显示器相关联的帧缓冲器正以较慢速率被填充。因此,显示图像可能反映显示器的同一帧内更新的和旧的图像信息两者。
[0006] 在一种解决方案中,使用多个缓冲器,且使图像信息循环经过所述多个缓冲器以避免上述图像撕裂问题。这包含普遍知道的“双缓冲”方法。然而,这种解决方案的缺点显然是实施过程中成本和芯片空间需求增加。
[0007] 因此,需要用于实现解决上述问题同时满足MDDI应用的成本和空间需求的缓冲器更新解决方案的方法和系统。

发明内容

[0008] 本发明涉及用于更新缓冲器的方法和系统。
[0009] 在一个方面,本发明提供一种更新缓冲器的方法,其包含策略上对所述缓冲器进行写入以启用对所述缓冲器的同时读取和写入。所述方法排除了对双缓冲的需要,藉此与常规缓冲方法相比产生实施成本和空间的节省。所述方法的优点尤其是当用于更新与显示器相关联的帧缓冲器时防止图像撕裂,但不限于此类应用。
[0010] 在另一方面,本发明提供用于通过通信链路启用缓冲器更新的有效机制。在一个实例中,本发明提供一种通过通信链路转继时序信息的方法。然而,所述方法不限于转继时序信息,且可用于所属领域的技术人员基于本文的教示可了解的更一般的情境中。
[0011] 下文参看附图详细描述本发明的其它实施例、特征和优点,以及本发明各种实施例的结构和操作。

附图说明

[0012] 附图并入本文中并形成本说明书的一部分,附图说明本发明,且与描述内容一起进一步用于解释本发明的原理并使相关领域的技术人员能够制造并使用本发明。
[0013] 图1是说明使用移动显示数字接口(MDDI)接口的示范性环境的方框图。
[0014] 图1A是耦合到数字装置和外围装置的数字数据装置接口的图。
[0015] 图2是说明根据图1的实例的实施例的MDDI链路互连的方框图。
[0016] 图3是说明图像撕裂问题的实例。
[0017] 图4是说明根据本发明的更新缓冲器的方法的进程流程图。
[0018] 图5说明图4的方法的实例。
[0019] 图6A、6B说明缓冲器读取/写入策略。
[0020] 图7是说明根据本发明的通过通信链路递送时序信息的方法的进程流程图。
[0021] 图8说明启动MDDI链路唤醒以递送时序信息的示范性信号时序图。
[0022] 将参看附图描述本发明。元件第一次出现的图通常由相应参考标号中最左数位表示。

具体实施方式

[0023] 本说明书揭示并入有本发明的特征的一个或一个以上实施例。所揭示的实施例仅例示本发明。本发明的范围不限于所揭示的实施例。本发明由所附权利要求书界定。
[0024] 所描述的实施例,和说明书中对于“一个实施例”、“实施例”、“示范性实施例”等的参考表示所描述的实施例可包含特定部件、结构或特性,但可能并不一定每个实施例均包含所述特定部件、结构或特性。此外,这些短语不一定是指同一实施例。此外,当结合实施例描述特定部件、结构或特性时,应认为,结合明确或未明确描述的其它实施例来实行此特定部件、结构或特性应在所属领域的技术人员的知识范围内进行。
[0025] 本发明的实施例可实施在硬件、固件、软件,或其任何组合中。本发明的实施例也可实施为存储在机器可读媒体上的指令,所述指令可由一个或一个以上处理器读取和执行。机器可读媒体可包含用于以可由机器(例如,计算装置)读取的形式存储或传输信息的任何机构。举例来说,机器可读媒体可包含只读存储器(ROM);随机存取存储器(RAM);磁盘存储媒体;光学存储媒体;快闪存储器装置;电、光学、声音或其它形式的传播信号(例如,载波、红外信号、数字信号等)等等。此外,本文中可将固件、软件、例行程序、指令描述为执行某些动作。然而,应了解,这些描述仅出于方便的目的,且这些动作实际上来自计算装置、处理器、控制器或执行所述固件、软件、例行程序、指令等的其它装置。
[0026] 移动显示数字接口(MDDI)
[0027] 移动显示数字接口(MDDI)是具有成本效益的、低功率消耗的传递机制,其实现主机与客户端之间经由短程通信链路的甚高速串行数据传递。
[0028] 下文中,将相对于包含在移动电话的上翻盖中的相机模块来提供MDDI的实例。然而,相关领域的技术人员将了解,具有与相机模块功能上等效的部件的任何模块均可容易地替代并用于本发明的实施例中。
[0029] 此外,根据本发明的实施例,MDDI主机可包括可通过使用本发明而受益的若干类型的装置中的一者。举例来说,主机可以是手持式、膝上型、或类似的移动计算装置形式的便携式计算机。主机也可以是个人数据助理(PDA)、寻呼装置,或许多无线电话或调制解调器中的一者。或者,主机可以是便携式娱乐或演示装置(presentation device),例如便携式DVD或CD播放器,或游戏装置。此外,主机可作为主机装置或控制元件而驻存在期望与客户端具有高速通信链路的多种其它广泛使用的或计划的市售产品中。举例来说,主机可用于以高速率将数据从视频记录装置传递到基于存储的客户端以实现改进的响应,或传递到高清晰度的较大屏幕以用于演示。并入有板载库存(onboardinventory)或计算系统和/或到达其它家用装置的蓝牙连接的器具(例如,冰箱)当在因特网或蓝牙连接模式下操作时可具有改进的显示能力,或当电子计算机或控制系统(主机)驻存在机柜中的其它地方时,具有对室内显示器(客户端)和键区或扫描仪(客户端)的配线减少的需求。大体上来说,所属领域的技术人员将了解可通过使用这种接口而受益的多种现代电子装置和器具,以及利用新添加或现有的连接器或电缆中有限数目的可用导体来改进老装置使其以较高数据速率传送信息的能力。同时,MDDI客户端可包括多种可用于向最后用户提供信息或将信息从用户提供到主机的装置。举例来说,并入在护目镜或眼镜中的微显示器、内置于帽子或头盔中的投影装置、内置于车辆中(例如,观察窗或挡风玻璃中)的小型屏幕或甚至全息照相元件,或各种扬声器、头戴受话器或用于演示高质量声音或音乐的声音系统。其它演示装置包含用于演示会议或电影和电视图像的信息的投影仪或投影装置。另一实例将是使用触摸板或敏感装置、语音辨识输入装置、安全扫描仪等,除来自用户的触摸或声音外几乎不使用其它实际“输入”即可调用这些装置从装置或系统用户传递大量信息。另外,计算机的扩展坞(docking station)和车载套件(car kit)或桌面套件(desk-top kit)以及无线电话的支持架可充当介接到最后用户或到其它装置和设备的接口装置,并使用客户端(例如鼠标的输出或输入装置)或主机来辅助传递数据(尤其在涉及高速网络的情况下)。然而,所属领域的技术人员将容易了解,本发明不限于这些装置,市场上存在建议使用的旨在在存储和传送方面或在重放演示方面为最后用户提供高质量图像和声音的许多其它装置。本发明可用于增加各种元件或装置之间的数据通过量,以适应实现期望的用户体验所需的高数据速率。
[0030] 图1A是耦合到数字装置150和外围装置180的数字数据装置接口100的图。数字装置150可包含(但不限于)蜂窝式电话、个人数据助理、智能电话或个人计算机。大体上说,数字装置150可包含充当针对数字指令和处理数字演示数据(digital presentationdata)的处理单元的任何类型的数字装置。数字装置150包含系统控制器160和链路控制器170。
[0031] 外围装置180可包含(但不限于)相机、条形码读出器、图像扫描仪、音频装置和传感器。大体上说,外围装置180可包含任何类型的音频、视频或图像捕获和显示装置,其中在外围装置与处理单元之间交换数字演示数据。外围装置180包含控制区块190。例如,当外围装置180是相机时,控制区块190可包含(但不限于)镜头控制、闪光或白色LED控制及快门控制。数字演示数据可包含表示音频、图像和多媒体数据的数字数据。
[0032] 数字数据接口装置100经由通信链路105以高速率传递数字演示数据。在一个实例中,可使用MDDI通信链路,其支持最大带宽为每秒3.2吉比特的双向数据传递。视通信链路而定,可支持数据传递的高于或低于此示范性速率的其它高速率。数字数据接口装置100包含消息解译器模块110、内容模块120、控制模块130和链路控制器140。
[0033] 位于数字数据接口100内的链路控制器140和位于数字装置150内的链路控制器170建立通信链路105。链路控制器140和链路控制器170可以是MDDI链路控制器。
[0034] 视频电子标准协会(“VESA”)MDDI标准(其全文以引用的方式并入本文中)描述允许便携式装置将来自小型便携式装置的数字图像传送到较大的外部显示器的高速数字包接口的要求。MDDI应用微型连接器系统和对于将便携式计算、通信和娱乐装置链接到例如可佩带的微显示器的新兴产品来说比较理想的细挠性电缆。其还包含关于如何简化主机处理器与显示装置之间的连接的信息,以便减少成本并增加这些连接的可靠性。链路控制器140和170基于VESA MDDI标准来建立通信路径105。
[0035] 2004年7月6日颁 予Zou等人的题 为“Generating and Implementing a CommunicationProtocol and Interface for High Data Rate Signal Transfer”的第6,760,772号美国专利(′772专利)描述一种数据接口,其使用包结构经由通信路径在主机与客户端之间传递数字数据,其中所述包结构链接在一起以形成针对演示数据的通信协议。′772专利中教示的本发明的实施例针对MDDI接口。链路控制器(例如,链路控制器
140和170)使用信号协议,所述链路控制器经配置以产生、传输并接收形成通信协议的包,并将数字数据形成为一种或一种以上类型的数据包,其中至少一种类型的数据包驻存在主机装置中并经由通信路径(例如,通信路径105)耦合到客户端。
[0036] 所述接口提供经由短程“串行”型数据链路的具有成本效益的、低功率、双向、高速数据传递机制,其适合于与微型连接器和细挠性电缆一起实施。链路控制器140和170的实施例基于′772专利的教示建立通信路径105。′772专利全文以引用的方式并入本文中。
[0037] 在其它实施例中,链路控制器140和170两者均可以是USB链路控制器,或其两者均可包含控制器的组合,例如,举例来说MDDI链路控制器与另一类型的链路控制器(例如,举例来说USB链路控制器)。或者,链路控制器140和170可包含控制器的组合,例如,MDDI链路控制器与用于在数字数据接口装置100与数字装置150之间交换确认消息的单一链路。链路控制器140和170另外可支持其它类型的接口,例如以太网或RS-232串行端口接口。相关领域的技术人员基于本文的教示将了解可支持额外接口。
[0038] 在数字数据接口装置100内,消息解译器模块110接收来自系统控制器160的命令,并经由通信链路105向系统控制器160产生响应消息,解译命令消息,且将命令的信息内容路由到数字数据接口装置100内的适当模块。
[0039] 内容模块120接收来自外围装置180的数据,存储所述数据并将数据经由通信链路105传递到系统控制器160。
[0040] 控制模块130接收来自消息解译器130的信息,并将信息路由到外围装置180的控制区块190。控制模块130也可接收来自控制区块190的信息,并将信息路由到消息解译器模块110。
[0041] 图1是说明使用MDDI接口的示范性环境的方框图。在图1的实例中,使用MDDI来使越过翻盖电话100的铰链的模块互连。
[0042] 参看图1,翻盖电话100的下翻盖部分102包含移动台调制解调器(MSM)基带芯片104。MSM 104是数字基带控制器。翻盖电话100的上翻盖部分114包含液晶显示器(LCD)模块116和相机模块118。
[0043] 仍参看图1,MDDI链路110将相机模块118连接到MSM 104。通常,MDDI链路控制器集成到相机模块118和MSM 104中的每一者中。在图1的实例中,MDDI主机122集成到相机模块112中,而MDDI客户端106驻存在MDDI链路110的MSM侧。通常,MDDI主机是MDDI链路的主控制器。在图1的实例中,来自相机模块118的像素数据在传输到MDDI链路110上之前,由MDDI主机122接收并格式化为MDDI包。MDDI客户端106接收MDDI包并将其再转换为与由相机模块118产生的像素数据相同格式的像素数据。接着将像素数据发送到MSM 104中的适当区块以进行处理。
[0044] 仍参看图1,MDDI链路112将LCD模块116连接到MSM 104。在图1的实例中,MDDI链路112将集成到MSM 104中的MDDI主机108与集成到LCD模块116中的MDDI客户端120互连。在图1的实例中,由MSM 104的图形控制器产生的图像数据在传输到MDDI链路112上之前,由MDDI主机108接收并格式化为MDDI包。MDDI客户端120接收MDDI包并将其再转换为图像数据以供LCD模块116使用。通常,图像数据在用于刷新LCD显示器之前使用帧缓冲器进行缓冲。
[0045] 图2是说明根据图1的实例的MDDI链路互连112的方框图。如上所述,MDDI链路112的功能之一是将图像数据从MSM 104传递到LCD模块116。帧接口(图2未图示)将MDDI链路控制器120连接到LCD模块116的模块。类似地,另一帧接口(图2未图示)将MDDI链路控制器108连接到MSM 104的适当模块。通常,MDDI链路控制器108表示MDDI链路的主机控制器,而MDDI链路控制器120表示MDDI的客户端控制器。然而,其它实施方案可使两个控制器的角色颠倒过来。
[0046] MDDI链路112包含最少四个引线,除了两个用于功率信号210和211的引线外,包括两个用于数据信号202和204的引线和两个用于探测信号206和208的引线。数据信号202和204是双向的。因此,可使用数据信号202和204在任一方向上(从主机到客户端且反之亦然)传输数据。选通信号206和208是单向的,且仅可由链路的主机控制器驱动。因此,在图2的实例中,仅主机控制器108可驱动选通信号206和208。
[0047] 用于更新缓冲器的方法和系统
[0048] 如上所述,MDDI可用于将基带处理器(例如,图2中的MSM 104)与图形控制器(例如,图2中的LCD模块116)相连接。基带处理器将通常从相机传感器接收的图像信息引导到图形控制器,图形控制器使用所述图像信息来创建显示图像。通常,图形控制器使用一个或一个以上帧缓冲器来在使用从基带处理器接收的图像信息产生显示图像之前存储所述图像信息。如上所述,会发生的一个问题是图像撕裂。在正以比将图像信息写入到帧缓冲器的速率慢或快的速率从帧缓冲器读出图像信息时,发生图像撕裂。本文将描述优点尤其是解决图像撕裂问题的用于更新缓冲器的方法和系统。然而,应注意,根据本发明的方法和系统不限于将对其进行描述或其将被用于MDDI环境中的特定示范性实施例。此外,本发明的方法和系统可用于利用缓冲的各种其它应用中,且可从本发明的优点中受益。
[0049] 图像撕裂
[0050] 图3说明在从缓冲器进行读取和/或对缓冲器进行写入时可能发生的图像撕裂的两个实例。图3的图展示随着缓冲器位置和时间的变化而变化的读取和写入指针的图表。读取指针表示缓冲器中正被读取的位置。写入指针指示缓冲器中正被写入的位置。在图3的实例中,依据缓冲器中的像素位置来界定缓冲器位置。
[0051] 在图3中的第一实例中,缓冲器正以比其被写入的速率慢的速率被读取。这由读取和写入指针线302和304的相对斜率说明。注意,读取和写入指针线302和304在时间t0相交。在时间t0之前,缓冲器中的像素在被更新之前被读取。时间t0之后,像素在被读取之前被更新。因此,在相同帧内(从时间0到时间t1),位置0到p0(其对应于在时间t0读取的像素位置)中的像素相对于来自位置p0的像素到缓冲器中的最后像素来说被读取了较旧的图像信息,所述来自位置p0的像素到缓冲器中的最后像素被读取了更新的图像信息。结果是图像撕裂,其中图像的下部分相对于图像的上部分来说反映较新的图像信息。
[0052] 在图3中的第二实例中,缓冲器正以比其被写入的速率快的速率被读取。这由读取和写入指针线302和306的相对斜率说明。读取和写入指针线302和306在时间t2相交。在时间t2之前,缓冲器中的像素在被读取之前被更新。时间t2之后,像素在被更新之前被读取。因此,在相同帧内(从时间t1到时间t3),位置0到p2(其对应于在时间t2读取的像素位置)中的像素相对于来自位置p2的像素到缓冲器中的最后像素来说被读取了较新的图像信息,所述来自位置p2的像素到缓冲器中的最后像素被读取了较旧的图像信息。结果是图像撕裂,其中图像的上部分相对于图像的下部分来说反映较新的图像信息。
[0053] 更新缓冲器的方法
[0054] 现将提供一种策略上更新缓冲器的方法。所述方法当用于更新与显示器相关联的帧缓冲器时防止图像撕裂。所述方法基于本文将描述的其明显优点也可用于其它缓冲应用中。
[0055] 图4是说明根据本发明的用于更新缓冲器的方法的进程流程图400。进程流程图400开始于步骤410,其包含确定缓冲器中的读取线位置。所述读取线位置指示当前正从缓冲器读取的线。通常,通过确定指向缓冲器中的读取线位置的读取指针的值来实现步骤
410。
[0056] 步骤420包含基于读取线位置将缓冲器至少分割为可安全更新的第一部分和不能更新的第二部分。这里应注意,这里分割缓冲器不表示缓冲器的物理分割而是逻辑分割。此外,缓冲器的逻辑分割并不固定,且如从本文的教示将了解,其可以变化。缓冲器的第一部分包含缓冲器的已基于读取线位置在当前缓冲器读取周期内被读取的线。第一部分还包含缓冲器的可基于读取线位置更新的线。换句话说,第一部分包含内容刚被读取的线,或可在读取线位置到达线之前基于缓冲器读取速度和缓冲器写入速度而更新的线。无法在读取线位置到达线之前基于缓冲器读取速度和缓冲器写入速度更新的线属于缓冲器的第二部分。换句话说,缓冲器的第二部分的线是那些在必须读取之前没有足够时间来更新的线。因此,缓冲器的第二部分的线很可能在缓冲器的最近读取周期期间已被更新。
[0057] 步骤430包含通过在第一部分的线处写入数据来更新缓冲器,所述线基于读取线位置而遵循第二部分。通常,在如上所述可安全更新且在缓冲器的最近读取周期期间已被读取的位置处更新缓冲器。在一个实施例中,步骤430包含在第一部分的线处写入数据,所述线紧接着遵循第二部分的最近的线。如所属领域的技术人员基于本文揭示的教示将了解,步骤430的其它变化形式也是可能的。
[0058] 示范性说明
[0059] 图5提供说明上文图4中描述的方法的实例。图5展示读取缓冲器500的三个实例A、B和C。仅出于说明的目的,缓冲器500展示为包含352条数据线。读取指针510指示缓冲器中的读取线位置。标记为罗马数字“I”的部分表示如上所述属于缓冲器的第一部分的线。标记为罗马数字“II”的部分表示如上所述属于缓冲器的第二部分的线。
[0060] 在实例A中,阴影区域“I”表示缓冲器的第一部分的在缓冲器的当前读取周期期间已被读取的线。在所述实例中,此区域包含线1到m-1。读取指针510指示线m当前正被读取。因此,实例A中区域“II”表示缓冲器500的无法基于读取指针510的当前位置更新的线。换句话说,没有足够的时间来基于读取指针510的当前位置以及对缓冲器的读取和写入速度而更新区域“II”中的线。请注意,缓冲器的第一部分还包含区域“II”下方的非阴影区域“I”。此区域“I”因为其可安全更新而属于第一部分,但假定其在缓冲器的当前读取周期期间尚未被读取,那么不应对其进行更新。在读取非阴影区域“I”之前对其进行更新将导致图像撕裂,如图3所描述,其中图像的上部分相对于图像的下部分来说反映较旧的图像信息。
[0061] 在实例B中,阴影区域表示缓冲器的在缓冲器的当前读取周期期间已被读取的线。在所述实例中,此区域包含线1到351。读取指针510指示线351当前正被读取。因此,实例B中区域“II”表示在给定当前读取线位置的情况下很可能已更新的线。区域“II”中的线无法基于当前读取线位置以及对缓冲器的读取和写入速度进行更新,且基于上文描述属于缓冲器的第二部分。区域“I”中的线属于缓冲器的第一部分,且可安全更新。为了更新缓冲器,可在区域“I”中开始写入。可在区域“I”中的紧接着遵循区域“II”的线处写入数据。这对应于实例B中的线m。
[0062] 实例C说明B中所示的情形之后的情形。在实例C中,读取指针510已回绕且正读取缓冲器的线m。因此,缓冲器中在读取指针之前的线属于缓冲器的第一部分,且可被更新。在给定当前读取线位置的情况下,区域“II”中的线很可能已在对缓冲器的最近写入周期期间更新。区域“II”中的线无法更新,且如上所述属于缓冲器的第二部分。换句话说,在给定读取线位置的情况下,区域“II”中的线必须含有更新的信息,因为在其必须被读取之前没有足够的时间对其进行更新。阴影区域“I”表示缓冲器的第一部分的可安全更新的线,但假定其在缓冲器的最近读取周期期间尚未被读取,那么不应对其进行更新。
[0063] 缓冲器读取/写入策略
[0064] 本文描述用于避免与缓冲器更新有关的图像撕裂或等效问题的缓冲器读取/写入策略。根据本发明的缓冲器更新策略进一步排除了对于普遍采用的“双缓冲”技术的需要。替代地,使用单个缓冲器,这促成了实施成本和空间的节省。本发明不限于本文描述的示范性策略,且所属领域的技术人员易知的变化形式也被认为是在本发明的范围内。
[0065] 图6A和6B说明根据本发明的示范性缓冲器读取/写入策略。图6A和6B的图展示随着缓冲器位置和时间而变化的读取指针612以及写入指针614和616的图表。在图6A和6B的实例中,依据缓冲器中的像素位置界定缓冲器位置,所述像素位置可等效地由缓冲器位置的任何其它量度(例如,线数目)代替。
[0066] 参看图6A,其描绘缓冲器的两个读取周期内的示范性缓冲器读取/写入策略。在第一读取周期中,从时间0到时间t1,更新缓冲器的前半部分,同时读取整个缓冲器内容。在缓冲器的第二读取周期中,从时间t1到时间t2,更新缓冲器的后半部分,同时读取整个缓冲器内容。请注意,在第二读取周期期间,缓冲器的前半部分含有在第一读取周期期间写入到缓冲器的已更新信息。在第二周期期间,缓冲器的后半部分如图所示在第二读取周期内随时间由读取指针612之前的写入指针614读取之前被更新。因此,在两个读取周期内,从缓冲器读取的数据属于缓冲器的同一更新周期,且不发生图像撕裂。
[0067] 图6B说明缓冲器的两个读取周期内的另一示范性缓冲器读取/写入策略。在第一读取周期期间,从时间t0到时间t1,更新缓冲器的前半部分。在第二读取周期期间,从时间t1到时间t2,更新缓冲器的后半部分。请注意,对缓冲器的写入在第一周期期间的时间t0开始,使得在第一周期期间,读取整个缓冲器的初始信息内容而不是由于写入过程而产生的已更新内容。另一方面,对缓冲器的写入在第二周期期间的时间t2结束,使得在第二周期期间,整个缓冲器在被读取时含有已更新的信息内容。这在第二读取周期内随时间由读取指针612之前的写入指针616展示。因此,在图6B的实例中两个读取周期内均不会发生图像撕裂。
[0068] 经由通信链路的缓冲器更新
[0069] 根据本发明的更新缓冲器的方法和系统可用于多种应用中。在一种应用中,如上所述,可使用缓冲器更新方法来更新与显示器相关联的帧缓冲器。在另一应用中,远程地更新缓冲器,其中其由第一处理器进行写入且由第二处理器进行读取,且其中所述第一和第二处理器经由通信链路进行通信。举例来说,第一和第二处理器分别表示经由MDDI链路通信的MSM基带处理器和LCD模块,如图2所说明。在某些应用中,将需要第一与第二处理器之间的同步。
[0070] 现将提供与用于通过通信链路实现缓冲器更新的同步有关的方法和系统。所属领域的技术人员基于本文的教示将了解,将呈现的方法和系统的某些方面可适用于一般的同步问题,且不限于用于实现远程缓冲器更新的同步。
[0071] 在一个方面,第一与第二处理器之间的同步包含调度第一处理器处的第一事件,所述第一事件由第二处理器处的第二事件触发。这通常通过对寄存器进行写入以实现触发一中断来完成,只要第二处理器处发生第二事件,所述中断就引起第一处理器处的第一事件。举例来说,在缓冲器由第一处理器更新且由第二处理器进行读取的远程缓冲器更新应用中,第一事件可表示需要开始对缓冲器进行写入,而第二事件可表示读取指针已完成缓冲器的完整的读取周期。接着可基于缓冲器中的读取线位置在第二处理器处触发第二事件。
[0072] 另一方面,提供用于通过通信链路递送同步信息的方法。所述方法可用于(例如)转继与缓冲器更新有关的同步信息,如上所述。图7是说明当通信链路处于休眠模式时,通过通信链路在第一处理器与第二处理器之间递送时序信息的方法的进程流程图700。进程流程图700开始于步骤710,其包含调度第一处理器处的时间事件以将时序信息递送到第二处理器。所述时间事件可以是如特定应用所要求的周期性事件。举例来说,在缓冲器更新应用的情况下,所述时间事件可与缓冲器中的读取线位置有关。
[0073] 步骤720包含当时间事件发生时由第一处理器启动链路唤醒。举例来说,在通过MDDI链路进行缓冲器更新的情况下,其中MDDI客户端位于互连的LCD模块侧,MDDI客户端可通过将数据信号驱动为逻辑1以告知MDDI主机应更新缓冲器来启动链路唤醒。
[0074] 随后,步骤730包含在第二处理器(例如,在MDDI互连的MSM侧的MDDI主机)处检测链路唤醒,并使用检测到的链路唤醒时序使第一和第二处理器相对于正递送的时序信息同步。举例来说,在通过MDDI链路进行缓冲器更新的情况下,当MDDI主机检测到由MDDI客户端进行的链路唤醒时,其可使其自身与MDDI客户端相对于缓冲器更新开始时间同步。
[0075] 所属领域的技术人员基于本文的教示可了解,图7描述的方法可延伸以通过通信链路递送任何种类的时序信息,且不限于缓冲器更新同步目的。这种方法的优点是始终节省链路和通过简单地唤醒链路来递送信息。
[0076] 图8说明启动链路唤醒以通过MDDI互连递送时序信息的示范性时序图800。举例来说,MDDI互连可与上文参看图2所述的MDDI互连相同,其中MDDI主机位于MSM处且MDDI客户端位于LCD模块处。因此,MDDI客户端将启动链路唤醒以将缓冲器更新信息递送到MDDI主机,MDDI主机进而将开始刷新位于LCD模块中的缓冲器。在图8的实例中,vsync_wake信号802表示写入到MDDI主机处的寄存器以基于vsync信号806在主机处启用唤醒的值。只要vsync_wake 802的值较高,就发生主机处的唤醒。vsync信号806表示信号“垂直同步”的值,信号“垂直同步”发生在客户端处且与缓冲器更新时间有关。举例来说,只要读取指针已回绕且准备从缓冲器的开始进行读取,vsync 806就变高。Link_active信号804表示MDDI互连的数据信号是活动的还是处于休眠。Mddi_client_wakeup信号808表示客户端处的信号,其响应vsync 806以唤醒客户端。
[0077] 在图8的实例中,在主机处将vsync_wake 802设定在时间A。在时间B,MDDI链路进入休眠模式。在时间C,vsync 806变高,这指示缓冲器需要由主机进行刷新。因此,Mddi_client_wakeup信号808也变高以唤醒客户端来启动链路唤醒。客户端通过驱动互连的数据信号来启动链路唤醒,且在时间D,链路变为活动的。随后,vsync_wake 802和mddi_client_wakeup返回零,且主机检测到链路唤醒并开始在客户端处刷新缓冲器。
[0078] 结论
[0079] 尽管上文已描述本发明的各种实施例,但应了解,仅以举例的方式而非限制的方式呈现了所述各种实施例。相关领域的技术人员将了解,可在不脱离本发明的精神和范围的情况下在各种实施例中作出形式和细节上的各种改变。因此,本发明的外延和范围不应受上述示范性实施例中的任一者限制,而是仅应根据所附权利要求书及其等效物界定。