[发明专利]非x86指令集计算机的x86兼容显卡快速初始化方法有效
申请号: | 201310087046.7 | 申请日: | 2013-03-19 |
公开(公告)号: | CN103150188A | 公开(公告)日: | 2013-06-12 |
发明(设计)人: | 董攀;吴庆波;戴华东;张卫华;王伟;颜跃进;孔金珠;刘晓建 | 申请(专利权)人: | 中国人民解放军国防科学技术大学 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 湖南兆弘专利事务所 43008 | 代理人: | 赵洪;谭武艺 |
地址: | 410073 湖南省长沙市砚瓦池正*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | x86 指令 计算机 兼容 显卡 快速 初始化 方法 | ||
技术领域
本发明涉及非x86指令集计算机基础平台领域,具体涉及一种在非x86指令集计算机平台上实现兼容通用显卡(x86兼容显卡)时的显卡快速初始化方法。
背景技术
人机交互在现代计算机的意义至关重要,计算机加电启动后的第一要务就是显示输出,并向用户报告系统是否健康。计算机系统的显示输出一般由显示控制器设备完成,由于历史原因,显示控制器常简称为显卡。显卡在加电后,需要由CPU对其进行初始化配置,才能进入正常的显示数据转换和信号输出状态,此时显示器上才会有信息输出。因此显卡的初始化速度是影响计算机开机显示速度的重要因素。
和通用计算机CPU的状况类似,高性能显卡核心芯片的技术为少数厂家垄断。这些厂商为了保护显卡的技术秘密,一般不公开手册、初始化代码,仅对特定操作系统和硬件平台(一般是x86平台)提供不开源的二进制驱动程序。在这样的背景下,为了提供在x86指令集计算机上的通用初始化方法问题,这些厂商联合推出了VBE(VESA BIOS Extensions)规范,提供了在x86计算机上初始化显卡的统一指令接口和操作序列,厂商再把特定于显卡的操作序列以机器指令方式固化到每个显卡的随机只读存储器(ROM)中,通过VBE接口调用就可以完成固件中显卡的初始化。
作为x86计算机平台的行业标准,VBE针对诸如显示器分辨率、色深的调节,提供了标准的显示控制器访问规则,必要时软件还可通过 VBE服务获得显卡的各种配置的有效性和详细资料。VBE服务的重要基础是显卡ROM,几乎每项VBE服务触发后,都会跳转到固化在ROM中的可执行代码,以获得特定于硬件的功能实现。VBE只能作为x86计算机的标准,这是因为:(1)VBE规定ROM中的指令是直接被CPU执行的,因此只能是x86机器代码;(2)VBE中大量使用了x86平台上才有的IO端口操作指令(PCIE规范中将这种指令称为Legacy IO)。
在非x86计算机平台上,目前还没有业界的统一标准,能够以统一的模式和步骤初始化和驱动显卡设备。OpenFirmware组织曾制定出一套方案,使用类Forth语言的字节码实现显卡固件,以实现固件代码的平台无关性,但目前这种方案没能得以推广,大部分厂商都不支持。在此背景下,基于指令模拟的显卡初始化方法得到了广泛使用。指令模拟方法是基于软件创建执行x86指令的虚拟机,针对显卡的需求主要完成三个部分的模拟,即:内存空间映射、中断机制和指令执行。内存空间映射模块完成显卡以x86平台上VBE模式初始化时需要的ROM运行空间、IO地址空间和显卡内置内存空间的映射;中断机制模拟了x86平台BIOS提供的中断服务;指令执行则将每条ROM中的x86二进制指令转换成语义等效的目标平台二进制指令。许多开源项目中都实现了面向x86兼容显卡的模拟执行技术,其中以x86emu项目为典型的代表。x86emu基于C语言开发,具有良好的平台移植性,在ARM、PowerPC、MIPS、SPARC等非x86指令集计算机上都可以较好的运行,实现显卡的初始化功能。
如图1所示,针对非x86计算机平台(例如SPARC T2处理器平台),在系统加电后,现有技术的指令模拟方法是由OBP(Open Boot Prom)完成对设备的初始化,其初始化基本过程为:
1)OBP在扫描PCIE总线的过程中探测到显卡的PCI配置信息,从而获取显卡的配置空间基地址、IO空间基地址以及内存空间基地址。
2)根据显卡的配置空间描述,OBP将显卡认定为Legacy IO显卡,并配置显卡在PCI设备树上所途经的桥设备的VGA控制寄存器,使CPU发射的IO端口(port)操作指令能直接到达显卡。
3)基于模拟器执行VBE规范中所定义的标准显示初始化过程,该过程的基本步骤如下:
A.执行vgabios代码,即将显卡固件中的二进制代码读出后模拟执行;
B.模拟执行set-videomode操作,设置显卡的工作模式,例如色深和分辨率;
C.模拟执行get-videomode-info操作,得到显卡的工作状态属性信息,例如显示缓冲区地址等;
D.模拟执行set-palete操作,设置显卡显示需要的调色板。
4)最后OBP将获得的显卡分辨率、色深、显示缓冲区地址等信息交给高层次的控制台驱动程序或是图形窗口驱动程序,即可由高级的驱动程序发起屏幕显示操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科学技术大学,未经中国人民解放军国防科学技术大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310087046.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种开臼型的眼镜镜框
- 下一篇:微型摄像镜头