基于飞腾处理器平台的多显示屏输出方法技术

技术编号:7630612 阅读:330 留言:0更新日期:2012-08-03 16:44
本发明专利技术公开了一种基于飞腾处理器平台的多显示屏输出方法,其实施步骤如下:1)安装至少两块显卡;2)在操作系统启动时依次初始化各显卡及其CRTC控制器,获取所有CRTC控制器的缓冲帧空间总大小,预留与缓冲帧空间总大小相同的保留虚拟内存空间,将各CRTC控制器的帧缓冲与保留虚拟内存空间内的虚拟内存地址依次建立一一映射;3)在操作系统运行时将待输出画面实时缓存至所述保留虚拟内存空间中,CRTC控制器分别读取其帧缓冲所映射虚拟内存地址中存储的待输出画面片段,并将所述待输出画面片段转换成输出信号输出至显示屏。本发明专利技术无需修改现有显卡硬件,具有显卡兼容性好、硬件性能要求低、显示输出效率高、实施成本低的优点。

【技术实现步骤摘要】

本专利技术涉及多屏显示领域,具体涉及一种。
技术介绍
多显示屏输出方法又称显示墙技术,一般用于实现超大屏幕的画面输出,目前在指挥调度、媒体展示、金融贸易等领域得到了广泛的应用。现有的显示墙技术一般通过专门硬件设备来实现多显示屏输出,这些专门硬件设备被称为大屏幕处理器拼接器。但是,大屏幕处理器拼接器一般都是基于x86平台实现,飞腾处理器平台的飞腾处理器基于spare体系结构,spare体系结构与x86体系结构无法兼容,如需针对spare体系结构开发大屏幕处理器拼接器则需要设计专门的硬件和软件,存在成本高、造价昂贵的问题。传统显卡基于多CRTC控制器,每路CRTC控制器(Cathode Ray Tube Controller, 阴极管射线控制器)可输出一路显示信号,多CRTC控制器则可输出多屏显示信号,实现多屏扩展,但输出屏幕个数受限于卡上CRTC控制器数量。目前也有通过修改显卡硬件本身, 即在一块显示设备上增加CRTC控制器和帧缓冲(Framebuffer)数量实现多屏输出的方法。 帧缓冲存在于硬件上的存储空间内,并用于存放将要显示在显示屏上的一帧待输出画面; CRTC控制器位于显卡内,CRTC控制器是一种扫描输出控制器,CRTC控制器能够周期扫描帧缓冲,将巾贞缓冲中存放的一巾贞待输出画面转换成输出信号并输出给显不屏。但是,在一块显示设备上增加CRTC控制器和帧缓冲数量实现多屏输出的方法存在如下的局限性1、该方法实现多屏显示是将窗口管理器(窗口管理器,是显示图像的绘制程序)分别写入CRTC控制器对应的帧缓冲,需要对待显示画面进行数据处理,对硬件要求搞、输出效率低;2、由于显卡增加CRTC控制器和帧缓冲会导致成本较高;3、增加CRTC控制器和帧缓冲受到显卡体积的约束;4、由于增加CRTC控制器和帧缓冲固定在显卡内,可扩展性差;5、这些实现往往是基于x86体系结构,无法与spare体系结构的飞腾处理处理器兼容。综上所述,飞腾处理器平台目前尚无较好的多显示屏输出方法,严重制约了飞腾处理器在多屏显示领域的应用和推广。
技术实现思路
本专利技术针对上述现有技术的缺陷,提供一种无需修改现有显卡硬件、显卡兼容性好、输出效率高、可扩展性能好、实施成本低的。为了解决上述技术问题,本专利技术采用的技术方案为一种,其实施步骤如下1)安装至少两块显卡;2)在操作系统启动时,依次初始化各显卡及其CRTC控制器,获取所有CRTC控制器的缓冲帧空间总大小,预留与所述缓冲帧空间总大小相同且连续分布的保留虚拟内存空间,将所述各CRTC控制器的帧缓冲与所述保留虚拟内存空间内的虚拟内存地址依次建立一一映射;3)在操作系统运行时,将待输出画面实时缓存至所述保留虚拟内存空间中,所述CRTC 控制器分别读取其帧缓冲所映射虚拟内存地址中存储的待输出画面片段,并将所述待输出画面片段转换成输出信号输出至显示屏。作为本专利技术上述技术方案的进一步改进所述步骤2)中依次初始化各显卡及其CRTC控制器的步骤包括从第一片显卡开始, 首先关闭所有显卡VGA信号的传递,然后打开当前显卡的VGA信号传递,运行当前显卡的 VIDEO BIOS初始化例程完成当前显卡及其CRTC控制器的初始化,重复上述步骤直至完成所有显卡及其CRTC控制器的初始化。所述步骤2)中将各CRTC控制器的帧缓冲与保留虚拟内存空间内的虚拟内存地址依次建立一一映射的步骤包括:A)选定一个帧缓冲作为当前帧缓冲,将保留虚拟内存空间的起始地址作为当前地址;B)从所述当前地址开始获取一段与所述当前帧缓冲大小相同的地址空间,修改所述地址空间中各个地址对应的页表项,使得所述页表项依次指向所述当前帧缓冲的各个页,完成当前帧缓冲的映射;C)将下一个帧缓冲作为当前帧缓冲,设置与所述地址空间相邻的下一个地址作为当前地址,重复步骤B)直至完成所有帧缓冲的映射。本专利技术具有下述优点I、本专利技术无需修改现有显卡的硬件设计,能够利用标准的、易获取的、廉价的普通低端显卡,将各CRTC控制器的帧缓冲与保留虚拟内存空间内的虚拟内存地址依次建立一一映射,使每一个CRTC控制器输出的单个屏幕是整个完整屏幕的一部分,从而实现飞腾处理器平台的多显示屏输出,能够根据需要选择不同数量的显卡或者具有不同数量CRTC控制器的显卡来扩展实现不同数量的多显示屏输出,具有可扩展性能好、使用灵活方便、显卡兼容性好、显卡性能要求低、实施成本低的优点。2、本专利技术采用映射的方式实现待输出画面的重定向输出,使位于同一块显卡上或不同显卡上的帧缓冲映射为一片连续的、虚拟的帧缓冲,采用高效率的映射方式直接将待输出画面写入帧缓冲映射的保留虚拟内存空间内,CRTC控制器则直接读取保留虚拟内存空间内存储的待输出画面片段,通过帧缓冲与虚拟内存地址的一一映射关系自动将待输出画面分割为待输出画面片段,整个输出过程无需对将待输出画面进行额外的数据中转处理, 硬件性能要求低,显示输出效率高,低端PCI显卡即可满足需求,极大地降低了实现多屏输出的成本,提高了飞腾处理器平台在多屏输出领域的核心竞争力。附图说明图I为本专利技术实施例的主要硬件框架结构示意图。图2为本专利技术实施例的四显示屏输出原理结构示意图。图3为本专利技术实施例初始化以及映射的详细流程示意图。图4为本专利技术实施例帧缓冲与保留虚拟内存空间的映射关系示意图。具体实施例方式如图I所示,本实施例采用带有双CRTC控制器的两个显卡实现4显示屏输出,飞腾处理器平台涉及显示输出的硬件结构主要包括显卡I、显卡2、主桥和CPU,主桥和CPU相4连,显卡I、显卡2分别与主桥相连,主桥用于实现硬件通信标准不同的CPU和显卡之间信号的转发,显卡I内设有桥I,桥I用于转发来自主桥对显卡I的访问,显卡2内设有桥2, 桥2用于转发主桥对显卡2的访问。本实施例中,显卡I和显卡2均采用采用AMD HD4350 显卡(显示芯片型号是RV710),显卡I和显卡2均包含两个CRTC控制器,每一个CRTC控制器的输出分辨率为1024X768,其帧缓冲大小为3M,因此步骤2)中获取4片CRTC控制器的缓冲帧空间总大小为12MB,向操作系统申请与缓冲帧空间总大小相同且连续分布的保留虚拟内存空间的大小也为12MB。每个CRTC控制器可以扫描缓冲帧将扫描的数据输出到一个显示屏,从而通过显卡I和显卡2可实现四个显示屏的输出。本实施例的主桥芯片型号为 PXE 8664,CPU采用基于spare体系结构的飞腾1000处理器,运行的操作系统为Iinux操作系统。本实施例的实施步骤如下O安装两块显卡(此外也可以根据需要安装一块显卡或者两块以上的显卡);2)在操作系统启动时,依次初始化各显卡及其CRTC控制器,获取CRTC控制器的缓冲帧空间总大小,预留与缓冲帧空间总大小相同且连续分布的保留虚拟内存空间,将各CRTC控制器的帧缓冲与保留虚拟内存空间内的虚拟内存地址依次建立--映射;3)在操作系统运行时,将待输出画面实时缓存至保留虚拟内存空间中,CRTC控制器分别读取其帧缓冲所映射虚拟内存地址中存储的待输出画面片段,并将待输出画面片段转换成输出信号输出至显示屏。如图2所示,在操作系统运行时,将待输出画面实时缓存至保留虚拟内存空间中, CRTC控制器分别读取其帧缓冲所映射虚拟内存地址中存储的待输出画面片段,并本文档来自技高网
...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:邵立松肖敛涛吴庆波戴华东孔金珠周剑张铎孙立明
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术