论文部分内容阅读
随着半导体工艺以及芯片设计水平的不断进步,电子设备的性能取得了极大提高。嵌入式应用终端得到了空前的发展,其能够处理的数据量更大,覆盖的领域更为广泛,一些原本只能在PC机上实现的应用,也已出现在嵌入式设备中。另一方面,人们对于嵌入式设备的应用也提出了更高的要求。以手机为例,人们已经不再满足于简单的通话、短信、视频播放等功能,而是希望手机能够提供更强大的功能,如3D游戏、网络直播、立体视频处理等。这些原本PC机中由图形处理器(GPU)完成的应用不仅需要强大的计算能力以及大数据的处理,更需要低功耗、低成本以适应不断发展的嵌入式系统需求。嵌入式GPU正是为了满足这些功能而设计的,是专用于嵌入式终端或者手持设备上的图形处理器。与PC机的GPU相比,嵌入式GPU需要同时兼顾高性能、低功耗、低成本等特点。本文针对嵌入式应用的特点,对嵌入式GPU的算法需求及架构进行了研究,完成了一款基于统一着色器架构的嵌入式GPU设计。本文首先介绍了图形学的相关背景知识,介绍了GPU的发展历史及现有GPU设计的主流趋势。接着,介绍了图形学相关的基础算法原理,包括坐标变换、图元组装、光栅化、插值以及纹理贴图等。然后,介绍了图形驱动的相关背景知识,包括OpenGL和D3D这两种使用最广泛的图形接口API。本文还介绍了OpenGL ES图形库,该库是OpenGL推出的针对嵌入式终端系统的图形驱动库。嵌入式GPU设计主要包括架构设计,流处理器设计,指令处理模块设计,存储器设计以及几何处理模块设计。嵌入式GPU采用统一着色器架构,可以有效的提高图形处理效率和资源的利用率,利用可编程方式实现顶点变换,光照计算,纹理贴图等功能。流处理器的设计包括核心计算单元CU设计,流水线设计,以及存储结构设计。本文设计的流处理器包含8个CU模块,每一个CU单元能够同时实现4个32位的单精度浮点计算。8个CU单元构成8级流水线结构,有效的防止了各个CU单元访问存储器产生的冲突。本设计中的嵌入式GPU采用了全新的指令集,指令包含了3D处理的各种操作以及3D流程控制。几何处理模块的设计包含了3D处理流程中的图元组装、视口变换、光栅化和插值操作等模块。最后,本文对所设计的嵌入式GPU进行了功能仿真,包括模块级仿真和系统级仿真,并给出了仿真波形以及结果,同时对结果进行了分析。另外,采用Synopsys公司32nm工艺对嵌入式GPU进行了物理设计,并给出版图设计结果。实验结果表明,本文设计的嵌入式GPU能够很好地完成了3D处理,其功耗大小为54mW。