CN115834874B - 一种用于gpu的显示带宽错误的实时监测方法及装置 - Google Patents
一种用于gpu的显示带宽错误的实时监测方法及装置 Download PDFInfo
- Publication number
- CN115834874B CN115834874B CN202310063489.6A CN202310063489A CN115834874B CN 115834874 B CN115834874 B CN 115834874B CN 202310063489 A CN202310063489 A CN 202310063489A CN 115834874 B CN115834874 B CN 115834874B
- Authority
- CN
- China
- Prior art keywords
- display
- accumulated value
- pixel data
- line
- bandwidth
- 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
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Controls And Circuits For Display Device (AREA)
Abstract
本发明适用于GPU领域,提供一种用于GPU的显示带宽错误的实时监测方法及装置,包括:初始化显示控制器的寄存器,并开启显示带宽错误使能功能;预取和保存像素数据,记录每行已经读回像素数据的预取累计值;显示像素数据,记录正在显示的像素数据的显示累计值;将显示累计值与预取累计值进行比较,如果显示累计值大于预取累计值,则显示带宽错误,并产生带宽错误中断。本发明通过实时监测每个显示通道的预取累计值和显示累计值,主动发现由于总线或者显存带宽不足引起的显示带宽错误问题,可用于提醒系统调整各个模块的优先级避免不必要的花屏现象和评估显示控制器的稳定性,从而保证显示控制器显示的准确性、稳定性和实时性。
Description
技术领域
本发明属于GPU领域,尤其涉及一种用于GPU的显示带宽错误的实时监测方法及装置。
背景技术
随着各行各业对显示设备的要求越来越高,国内GPU行业的迅速崛起,32位真色彩4K@60Hz分辨率成为当下显示设备的主流,多个显示接口同时工作的需求也越来越多,所以对总线传输速率和显存带宽的要求也越来越高。GPU显示控制器是按照固定的时序,从上到下,从左到右的扫描显示,显示控制器都是在场同步结束或行消隐开始时对本行发起读请求,开始预取像素数据,然后存储在缓存中,在显示有效时,将缓存中的数据读出进行显示,然而分辨率一定,刷新率越高,对预取数据的返回速率要求也会更高,这对总线传输速率和显存带宽提出更高的挑战。
在超高清分辨率和高刷新率下,当GPU的多个模块和显示控制器多个通道同时访问总线时,数据的传输速率巨大,很可能因为各个通道间的竞争或者总线和显存本身的延迟导致一行数据有些像素点是无法在需要显示的时刻返回的,会出现肉眼无法察觉的少量错误、横线状的花屏甚至是闪烁现象,因此有必要采用实时监测的方法辅助问题的捕获、定位与分析。
目前国产GPU中大多是通过对总线传输数据量的监测间接达到对显示带宽错误监测的目的,对总线的监测是通过总线monitor功能对各个接口、指定地址上传输的数据进行计数,但其仅仅是是连续的计数,需要专门的数据处理单元对数据统计计算处理后才能得出是否出现显示带宽错误的结论,达不到对每帧图像的显示带宽错误的实时监测的目的,而且对每帧图像的显示带宽错误统计和评估会浪费大量时间和资源。
发明内容
鉴于上述问题,本发明的目的在于提供一种用于GPU的显示带宽错误的实时监测方法及装置,旨在解决上述技术问题。
本发明采用如下技术方案:
一方面,所述用于GPU的显示带宽错误的实时监测方法,包括下述步骤:
步骤S1、初始化显示控制器的寄存器,并开启显示带宽错误使能功能;
步骤S2、针对显示控制器的每个显示通道,在场同步结束或行消隐开始时发起每行的读请求,预取每行的像素数据并存储于各显示通道对应的缓存内,实时记录每行已经读回像素数据的预取累计值,在每行显示结束时清零预取累计值;
步骤S3、在显示控制器的每个显示通道的行显示有效时,将缓存中的像素数据读出显示,同时记录正在显示的像素数据的显示累计值,在每行显示结束时清零显示累计值;
步骤S4、将显示累计值与预取累计值进行比较,如果显示累计值大于预取累计值,则显示带宽错误,并产生带宽错误中断。
进一步的,在步骤S2之后还包括:
将预取累计值转换成格雷码,再打两拍同步到像素时钟域,最后再转换成十六进制数。
另一方面,所述用于GPU的显示带宽错误的实时监测装置,包括:
使能模块,用于初始化显示控制器的寄存器,并开启显示带宽错误使能功能;
像素数据预取模块,用于针对显示控制器的每个显示通道,在场同步结束或行消隐开始时发起每行的读请求,预取每行的像素数据并存储于各显示通道对应的缓存内,实时记录每行已经读回像素数据的预取累计值,在每行显示结束时清零预取累计值;
像素数据显示模块,用于在显示控制器的每个显示通道的行显示有效时,将缓存中的像素数据读出显示,同时记录正在显示的像素数据的显示累计值,在每行显示结束时清零显示累计值;
显示带宽错误模块,用于将显示累计值与预取累计值进行比较,如果显示累计值大于预取累计值,则出现显示带宽错误,并产生带宽错误中断。
进一步的,所述实时监测装置还包括:
同步模块,用于将预取累计值转换成格雷码,再打两拍同步到像素时钟域,最后再转换成十六进制数。
本发明的有益效果是:本申请通过实时监测显示控制器的每个显示通道从显存已经读回的像素数据的预取累计值和正在显示的像素数据的显示累计值,当GPU的多个模块对总线和显存进行访问时,能够主动实时监测带宽不足引起的显示错误,可用于提醒系统调整各个模块的优先级避免不必要的花屏现象和评估显示控制器的稳定性,从而保证显示控制器显示的准确性、稳定性和实时性。而且本发明不需要在硬件上增加缓存,只需要增加控制逻辑,可以从硬件上实时监测显示带宽错误。
附图说明
图1是本发明实施例一提供的用于GPU的显示带宽错误的实时监测方法的流程图;
图2是每个显示通道在行消隐开始时从显存中预取像素数据的示意图;
图3是每个通道正在显示像素数据的示意图;
图4是GPU显示控制器的每帧图像的时序示意图;
图5是本发明实施例二提供的用于GPU的显示带宽错误的实时监测装置的结构框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:如图1所示,本实施例提供的用于GPU的显示带宽错误的实时监测方法包括下述步骤:
步骤S1、初始化显示控制器的寄存器,并开启显示带宽错误使能功能。
GPU芯片进行显示前,首先要初始化显示控制器的每个显示通道的配置寄存器,比如行场控制寄存器以及不同分辨率下对应的时钟寄存器等。本步骤需要使能显示带宽错误寄存器。
步骤S2、针对显示控制器的每个显示通道,在场同步结束或行消隐开始时发起每行的读请求,预取每行的像素数据并存储于各显示通道对应的缓存内,实时记录每行已经读回像素数据的预取累计值,在每行显示结束时清零预取累计值。
本步骤实现了预取和保存像素数据。行扫描时,在显示控制器的每个显示通道的场同步结束或行消隐开始时发起本行的读请求,开始预取本行的像素数据。预取的数据存储在不同显示通道对应的缓存内,实时记录每行已经读回像素数据的累预取计值,预取累计值在每行显示结束时清零。一行扫描结束后,进入下一行。
如图2所示,假设显示控制器设有4个显示通道,分别为通道0-通道3,图2为每个显示通道在行消隐开始时从显存中预取像素数据的示意图,预取过程以burst形式传输。
在32位真色彩模式下,总线数据位宽固定,缓存的写接口位宽和总线的数据位宽保持一致,总线数据通道每收到一笔数据对应的像素个数为“总线数据位宽/32”个,将收到的数据存储在对应缓存中的同时,也在对应的已经从显存中读回的像素数据的预取累计值上加“总线数据位宽/32”进行累计,此预取累计值仅在当前行有效,在本行显示结束时都要清零,避免对下一行的显示判断产生影响。
步骤S3、在显示控制器的每个显示通道的行显示有效时,将缓存中的像素数据读出显示,同时记录正在显示的像素数据的显示累计值,在每行显示结束时清零显示累计值。
本步骤实现了显示控制器显示缓存中的像素数据,当显示控制器的每个通道行显示有效时,缓存中的像素数据被读出进行显示,记录正在显示的像素数据的显示累计值,显示累计值在每行显示结束时清零。
如图3所示,为每个通道正在显示像素数据的示意图。当行显示有效时,将缓存中的像素数据读出进行显示,缓存的读接口位宽与每个像素数据位宽一致,因此一次会读出1个像素数据,随着像素时钟逐个进行显示,每显示一个像素,正在显示的像素数据的显示累计值就加1,此显示累计值仅在当前行有效,在本行显示结束时都要清零,避免对下一行的显示判断产生影响。
步骤S4、将显示累计值与预取累计值进行比较,如果显示累计值大于预取累计值,则出现显示带宽错误,并产生带宽错误中断。
本步骤将每个显示通道每行正在显示的像素数据的显示累计值与从显存中读回的像素数据的预取累计值进行对比,对比结果用来判断当前是否有显示带宽错误出现,当显示累计值大于预取累计值,则出现显示带宽错误,并产生带宽错误中断,可达到实时监测显示带宽错误的目的。
另外,参照图4所示的GPU显示控制器的每帧图像的时序示意图。步骤S2中,每个显示通道的每帧图像的第一行都是在场同步结束时预取,在场同步后还有场back porch和场top border,因此,第一行从发起读请求到行显示有效还有“back porch+top border”个扫描行,时间充足,在显示有效时,一般已经读回了第一行全部的像素数据,所以不会出现显示带宽错误。
而从第二行开始,都是在行消隐开始时预取本行的像素数据,预取像素数据的时间大大缩短,如果正在显示的像素数据的显示累计值大于从显存中读回的像素数据的预取累计值,就会出现显示带宽错误,达到实时监测显示带宽错误的目的。一旦有显示带宽错误出现,就会产生显示带宽错误中断,如果没有手动清除,显示带宽错误中断会一直存在,可用来监测一段时间内是否出现过显示带宽错误。
特别需要说明的是,从显存中预取像素数据是在总线时钟域,因此已经从显存中读回像素的预取累计值是在总线时钟域,而像素数据的显示是在像素时钟域,正在显示的像素数据的显示累计值是在像素时钟域,所以两者比较会涉及到跨时钟域的问题。当将正在显示的像素数据的显示累计值同步到总线时钟域,同步过程会有两个总线时钟周期的延时,所以实际正在显示的像素数据的显示累计值比预取累计值要大,可能出现实际上像素没有按时显示,但没有出现显示带宽错误的漏报情况。而如果将已经从显存中读回像素的预取累计值同步到像素时钟域,同步过程会有两个像素时钟周期的延时,如果同步后的从显存中读回像素的预取累计值比正在显示的像素数据的显示累计值还要大,说明同步前预取累计值一定大于显示累计值,不会漏报任何一个显示带宽错误。
因此作为一种优选方式,由于累计值是多bit信号,在跨时钟域时,将预取累计值转换成格雷码,再打两拍同步到像素时钟域,最后再转换成十六进制数,可以大大避免亚稳态的发生概率。
实施例二:如图5所示,本实施例提供的用于GPU的显示带宽错误的实时监测装置包括:
使能模块,用于初始化显示控制器的寄存器,并开启显示带宽错误使能功能;
像素数据预取模块,用于针对显示控制器的每个显示通道,在场同步结束或行消隐开始时发起每行的读请求,预取每行的像素数据并存储于各显示通道对应的缓存内,实时记录每行已经读回像素数据的预取累计值,在每行显示结束时清零预取累计值;
像素数据显示模块,用于在显示控制器的每个显示通道的行显示有效时,将缓存中的像素数据读出显示,同时记录正在显示的像素数据的显示累计值,在每行显示结束时清零显示累计值;
显示带宽错误模块,用于将显示累计值与预取累计值进行比较,如果显示累计值大于预取累计值,则显示带宽错误,并产生带宽错误中断。
本实施例中,像素数据预取模块使用了显示控制器原有的缓存,类型是真双口RAM,空间为显示控制器支持的最大分辨率对应的像素数据量。本实施例的上述功能模块对应实现了实施例一中的步骤S1-S4,通过使能模块显示带宽错误后,分别通过像素数据预取模块预取像素并记录预取累计值,通过像素数据显示模块显示像素并记录显示累计值,最后根据显示带宽错误模块进行两个累计值的比较,判断是否出现显示带宽错误。显示带宽错误模块将产生的带宽错误中断可及时上报给上位机,供上位机统计每帧图像的显示带宽错误。
另外,为了避免同步过程中的亚稳态现象,作为一种优选结构,所述实时监测装置还包括:
同步模块,用于将预取累计值转换成格雷码,再打两拍同步到像素时钟域,最后再转换成十六进制数。
综上,本发明提供一种用于GPU的显示带宽错误的实时监测方法和装置,通过对比正在显示的像素数据显示累计值和同步后的已经从显存中读回的像素数据预取累计值,达到对显示带宽错误实时监测的目的。不需要在硬件上增加缓存,只需要增加控制逻辑,实现一种从硬件上实时监测显示带宽错误的方法,有利于调试和测试过程中问题的捕获、定位与分析。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种用于GPU的显示带宽错误的实时监测方法,其特征在于,所述方法包括下述步骤:
步骤S1、初始化显示控制器的寄存器,并开启显示带宽错误使能功能;
步骤S2、针对显示控制器的每个显示通道,在场同步结束或行消隐开始时发起每行的读请求,预取每行的像素数据并存储于各显示通道对应的缓存内,实时记录每行已经读回像素数据的预取累计值,在每行显示结束时清零预取累计值;
步骤S3、在显示控制器的每个显示通道的行显示有效时,将缓存中的像素数据读出显示,同时记录正在显示的像素数据的显示累计值,在每行显示结束时清零显示累计值;
步骤S4、将显示累计值与预取累计值进行比较,如果显示累计值大于预取累计值,则出现显示带宽错误,并产生带宽错误中断。
2.如权利要求1所述用于GPU的显示带宽错误的实时监测方法,其特征在于,在步骤S2之后还包括:
将预取累计值转换成格雷码,再打两拍同步到像素时钟域,最后再转换成十六进制数。
3.一种用于GPU的显示带宽错误的实时监测装置,其特征在于,所述实时监测装置包括:
使能模块,用于初始化显示控制器的寄存器,并开启显示带宽错误使能功能;
像素数据预取模块,用于针对显示控制器的每个显示通道,在场同步结束或行消隐开始时发起每行的读请求,预取每行的像素数据并存储于各显示通道对应的缓存内,实时记录每行已经读回像素数据的预取累计值,在每行显示结束时清零预取累计值;
像素数据显示模块,用于在显示控制器的每个显示通道的行显示有效时,将缓存中的像素数据读出显示,同时记录正在显示的像素数据的显示累计值,在每行显示结束时清零显示累计值;
显示带宽错误模块,用于将显示累计值与预取累计值进行比较,如果显示累计值大于预取累计值,则出现显示带宽错误,并产生带宽错误中断。
4.如权利要求3所述用于GPU的显示带宽错误的实时监测装置,其特征在于,所述实时监测装置还包括:
同步模块,用于将预取累计值转换成格雷码,再打两拍同步到像素时钟域,最后再转换成十六进制数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310063489.6A CN115834874B (zh) | 2023-02-06 | 2023-02-06 | 一种用于gpu的显示带宽错误的实时监测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310063489.6A CN115834874B (zh) | 2023-02-06 | 2023-02-06 | 一种用于gpu的显示带宽错误的实时监测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115834874A CN115834874A (zh) | 2023-03-21 |
CN115834874B true CN115834874B (zh) | 2023-04-28 |
Family
ID=85520803
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310063489.6A Active CN115834874B (zh) | 2023-02-06 | 2023-02-06 | 一种用于gpu的显示带宽错误的实时监测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115834874B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117851293B (zh) * | 2024-03-07 | 2024-06-21 | 北京象帝先计算技术有限公司 | 地址翻译模块、显示控制器、处理系统、电子组件、电子设备及页表预取方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102648449A (zh) * | 2009-09-29 | 2012-08-22 | 辉达公司 | 用于并行处理单元的陷阱处理器架构 |
CN109978977A (zh) * | 2017-12-26 | 2019-07-05 | 三星电子株式会社 | 使用预取的图形数据执行基于图块的渲染的装置和方法 |
CA3044477A1 (en) * | 2018-06-01 | 2019-12-01 | Gregory Szober | Display buffering methods and systems |
TW202203003A (zh) * | 2020-06-23 | 2022-01-16 | 美商高通公司 | 對顯示器的圖像產生的功率需求減少 |
CN114219697A (zh) * | 2021-12-27 | 2022-03-22 | 中国电子科技集团公司第十四研究所 | 一种基于cuda的运动目标实时热力图生成方法 |
CN114637624A (zh) * | 2022-05-19 | 2022-06-17 | 武汉凌久微电子有限公司 | 一种主动错误探测的gpu显存访问修复方法及装置 |
CN115035875A (zh) * | 2022-08-10 | 2022-09-09 | 武汉凌久微电子有限公司 | 一种三档优先级的gpu显示控制器预取显存方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI765944B (zh) * | 2016-12-14 | 2022-06-01 | 成真股份有限公司 | 標準大宗商品化現場可編程邏輯閘陣列(fpga)積體電路晶片組成之邏輯驅動器 |
-
2023
- 2023-02-06 CN CN202310063489.6A patent/CN115834874B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102648449A (zh) * | 2009-09-29 | 2012-08-22 | 辉达公司 | 用于并行处理单元的陷阱处理器架构 |
CN109978977A (zh) * | 2017-12-26 | 2019-07-05 | 三星电子株式会社 | 使用预取的图形数据执行基于图块的渲染的装置和方法 |
CA3044477A1 (en) * | 2018-06-01 | 2019-12-01 | Gregory Szober | Display buffering methods and systems |
TW202203003A (zh) * | 2020-06-23 | 2022-01-16 | 美商高通公司 | 對顯示器的圖像產生的功率需求減少 |
CN114219697A (zh) * | 2021-12-27 | 2022-03-22 | 中国电子科技集团公司第十四研究所 | 一种基于cuda的运动目标实时热力图生成方法 |
CN114637624A (zh) * | 2022-05-19 | 2022-06-17 | 武汉凌久微电子有限公司 | 一种主动错误探测的gpu显存访问修复方法及装置 |
CN115035875A (zh) * | 2022-08-10 | 2022-09-09 | 武汉凌久微电子有限公司 | 一种三档优先级的gpu显示控制器预取显存方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN115834874A (zh) | 2023-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107493448B (zh) | 图像处理系统、图像显示方法及显示装置 | |
US7542010B2 (en) | Preventing image tearing where a single video input is streamed to two independent display devices | |
CN115834874B (zh) | 一种用于gpu的显示带宽错误的实时监测方法及装置 | |
US4591842A (en) | Apparatus for controlling the background and foreground colors displayed by raster graphic system | |
US20080002894A1 (en) | Signature-based video redirection | |
CN115035875B (zh) | 一种三档优先级的gpu显示控制器预取显存方法及装置 | |
US5611041A (en) | Memory bandwidth optimization | |
CN113205779B (zh) | 适用于电子墨水屏的多屏同步控制方法、装置及系统 | |
CN109451214A (zh) | 一种高速运动目标成像设备及方法 | |
WO1995024032A1 (en) | Method and apparatus for simultaneously minimizing storage and maximizing total memory bandwidth for a repeating pattern | |
US8311297B2 (en) | Method and apparatus for implementing Doppler scan conversion | |
CN115103208A (zh) | 一种视频数据的行缓存方法、行读取方法及处理系统 | |
CN110570793B (zh) | 一种适配不同类型显示屏的测试方法、装置及终端设备 | |
US20070018999A1 (en) | Auto-centering of main image | |
CN116112627B (zh) | 一种视频帧率自适应变换的方法和电路 | |
CN108024116B (zh) | 一种数据缓存方法及装置 | |
US6919902B2 (en) | Method and apparatus for fetching pixel data from memory | |
US6515672B1 (en) | Managing prefetching from a data buffer | |
KR100245275B1 (ko) | 컴퓨터 시스템용 그래픽스 서브시스템 | |
US10965841B2 (en) | Receiving device, video recording system and method for reducing video latency in video recording system | |
US5801718A (en) | Video signal processing circuit for monitoring address passing between write addresses and read addresses in a buffer memory | |
CN111510772B (zh) | 一种平衡视频帧率误差的方法、装置、设备及存储介质 | |
CN117851293B (zh) | 地址翻译模块、显示控制器、处理系统、电子组件、电子设备及页表预取方法 | |
US8081257B2 (en) | Method and system for processing image data in LCD by integrating de-interlace and overdrive operations | |
US12063407B2 (en) | Systems, methods, and devices for buffer handshake in video streaming |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |