kaiyun官方注册
您所在的位置: 首页> 嵌入式技术> 设计应用> 异构多核SoC可编程图形系统硬件设计
异构多核SoC可编程图形系统硬件设计
2014年电子技术应用第7期
周建伟1,韩俊刚1,李 涛1,杜慧敏2,焦继业1
1.西安邮电大学 计算机学院,陕西 西安710061; 2.西安邮电大学 电子工程学院,陕西 西安7
摘要:采用开源LEON3(basic version)处理器,运行Linux操作系统,并驱动西安邮电大学自主设计研发的基于传统GPU架构的可编程图形处理器,实现了包含可编程图形系统的SoC平台。将系统集成到Dini Group最新的DNV6_F2PCIE开发板上,采取OpenGL编程,通过鼠标、键盘、显示器运行2D、3D程序,进行图形的绘制,从而比较充分地验证了图形系统硬件设计。
中图分类号:TP302
文献标识码:A
文章编号: 0258-7998(2014)07-0040-04
Hardware design of programmable graphics system in heterogeneous multi-core SoC
Zhou Jianwei1,Han Jungang1,Li Tao1,Du Huimin2,Jiao Jiye1
1.School of Computer,Xi′an University of Posts & Telecommunications, Xi′an 710061,China;2.School of Electrical Engineering,Xi′an University of Posts & Telecommunications,Xi′an 710061,China
Abstract:Based on the Linux operating system platform and open source LEON3 processor, combined with programmable Graphics processor designed by Xi′an University of Posts Telecommunications, a heterogeneous multi-core SoC is implemented in DNV6_F2PCIE development board made by Dini Group. Running various OpenGL 2D and 3D programs on the SoC through the mouse, keyboard and display,the hardware design of graphics processing unit is validated sufficiently.
Key words :graphics processing unit;LEON3 processor;heterogeneous multi-core;Linux operating system

为打破国外垄断,研发拥有自主知识产权的图形处理器GPU(Graphics Processing Unit)对国民经济以及增强国防力量具有极其重要的意义。西安邮电大学GPU项目组2009年研发了GPU及其配套软件OpenGL。为了验证设计的GPU,并为GPU应用开发建立平台,本文研发了一个异构多核片上系统SoC(System on Chip)平台。

本文在分析了嵌入式开源LEON3处理器[1]Linux操作系统和西安邮电大学自主研发的可编程图形处理器的基础上,提出异构多核SoC图形系统[2]的设计,最后在DNV6_F2PCIE FPGA开发板进行系统验证。

1 系统论证

1.1 研究路线

首先构建一个C++的GPU算法仿真平台,并在其上进行图像渲染算法的研究;其次设计搭建System Verilog[3]建立验证平台,并开始Verilog语言设计硬件和OpenGL相关软件的开发,为了加快硬件设计速度,采用了第三方IP;由于此系统电路规模较大,选择Xilinx公司的XC6VLX550T[4]进行原型开发,并运行大量裸机OpenGL应用程序;最后加上嵌入式LEON3处理器、Linux操作系统,通过软件驱动和硬件接口完成CPU与GPU的数据交互,实现了一个完整的移动异构多核SoC图形处理系统,通过外部可编程的方式在FPGA上验证整个SoC系统,进而验证硬件设计的正确性。

1.2 关键技术与可行性分析

本系统采取软硬件协同设计技术、IP设计和复用技术、超深亚微米设计技术。涉及的关键技术包括系统描述、高层次的算法分析与设计、软硬件的划分、语言和编译器设计、微处理器设计、Linux操作系统在LEON3处理器上的运行、驱动软件和硬件接口设计、图形处理器的软硬件协同设计、异构系统的协同仿真验证以及图形界面的生成。针对上述涉及的关键技术提出了理论分析与仿真、验证和原型测试相结合的研究方法,制订了从系统的算法级到电路的RTL级,再到原型系统实现,逐级细化、逐级验证的技术路线。

采用Top-to-Down方法[5]设计SoC芯片,充分考虑了异构多核SoC可编程图形处理器设计过程中所面临的挑战,保证了芯片功能和性能技术指标达到设计要求,有利于缩短开发周期,降低开发成本及产品的单片价格,符合SoC研究设计的客观规律。

2 系统的硬件设计

系统的硬件设计主要包括作为系统主机的嵌入式开源LEON3处理器设计和作为从机的可编程图形处理器设计。系统的整体硬件结构如图1所示。

系统主要数据流向:

(1)2D程序:上位机将镜像文件通过JTAG传到CPU-DDR中,CPU从中取出相应2D数据进行运算,将运算结果通过AHB/APB Bridge传到VGA,再将VGA的数据发送到GPU中的显控,最终传到显示器上显示。

(2)3D程序:CPU从CPU-DDR中取出相应的3D命令数据环,将数据环通过AHB Bridge传到GPU;GPU经过各级渲染,将渲染结果存储到GPU-DDR中;显控通过存储管理器从中取出数据,传到显示器上显示。

2.1 嵌入式LEON3处理器的设计

LEON3(basic version)作为整个系统的主机,是一款由欧洲航天总局旗下的Gaisler Research公司开发研制的32 bit、符合SPARC V8[6]架构的、可配置、可综合适用于SoC设计中的开源处理器IP核[7],遵循GNU LGPL协议。LEON3内部包含7级整数流水线,具有可配置的TLB的内存管理MMU(Memory Management Unit)单元,支持硬件乘/除法器以及分立的指令与数据缓存,并将其设计为4核。它的源代码由可综合的VHDL代码构成,同时LEON系列处理器的性能也比较理想,可以达到大约0.85 MIPS/MHz。更大的好处是LEON处理器是一个公开源代码,遵循GNU。通过高速的AMBA AHB[8]总线链接内存控制器及高速外部接口,低速的AMBA APB总线实现片上外设的接口,如定时器、串口、VGA等。

作为整个系统的主机,其功能如下:

(1)处理上位机发来的命令,并在主存中设置命令数据环,将处理命令放入环中;

(2)采用Linux操作系统作为系统运行平台,完成图形驱动处理;

(3)管理系统内存和输入/输出设备(键盘、鼠标、显示器);

(4)运行2D程序;

(5)支持Sparc V8指令集、多核运行;

(6)支持以太网、串口、PS2、GPIO、WatchDog、Timer等外设,支持AHB总线扩展。

LEON3结构如图2所示。

2.2 可编程图形处理器硬件设计

可编程图形处理器采用传统GPU架构,并结合了可编程技术,经过9级流水线处理后,完成了一个3D基本图元的渲染过程。作为整个系统的从机,各级流水线及功能如下:

(1)命令处理器(CMD,1 core):CPU在主存中设置命令数据环,将处理命令放入环中,命令处理器通过总线接口、DMA引擎从环中获取命令、数据或向量地址并进行解析,如果获得的命令是3D处理命令,则将命令下发给3D引擎;如果是命令处理器需要处理的命令(缓冲区对象操作、显示列表操作等),则在命令处理器中进行处理,而不发送给3D引擎。

(2)顶点染色器(VS,2 core):完成几何变换(平移、缩放、旋转)、光照染色等功能。

(3)图元装配器(AS,1 ASIC):图元装配将从VS发送出来的带有属性的顶点根据用户指定装配模式(由glBegin指定)装配为点、线、三角形。经过AS处理后,GPU后续的流水部件将不会识别顶点,而是识别基本图元点、线和三角形。

(4)平面裁剪(CLIP-Plane,1 core):根据用户自定义裁剪平面(最多支持6个自定义裁剪平面)对基本图元进行裁剪。

(5)视景体裁剪(CLIP-3D,1 core):根据用户所定义的视景体对基本图元进行视景体裁剪操作。

(6)视窗变换(HCW,1 core):完成3D坐标向屏幕坐标的转换,经过HCW的处理后,基本图元将转变为屏幕上所见到的图元,为后续的光栅化做准备。

(7)光栅化(Rasterization,5 core):Rasterization根据图元的屏幕坐标计算图元内部的所有像素值,并将像素传送给像素染色器。

(8)像素染色器(PS,4 core):根据Rasterization所发送的片段信息计算片段的具体颜色,如果启用了纹理操作,则根据纹理函数参数信息对片段进行像素染色,最终将片段染色的值传送给段操作部件。

(9)片段操作(Fragment,1 ASIC):接收PS所发送的片段信息,对片段进行后期的FOP等处理,处理完毕后将最终的像素值写入Frame Buffer中。

可编程图形处理器由15个处理器以及图元装配、片断操作、内部图像处理子集、MMU和直接内存存取DMA(Direct Memory Access)5个专用图形加速单元所构成。15个处理器均为可编程处理器,其中CMD和PS为定点处理器,其他的处理器为浮点处理器。图像处理子集、MMU和DMA功能如下:

(1)图像处理子集(PS_IMG_PROC, 1 ASIC):完成对像素数据的处理,以及纹理和雾相关信息的存储。

(2)内存管理[9](MMU,1 ASIC):实现对GPU存储空间分配、存储读/写控制、存储空间回收以及存储保护、地址映射等,对有访存要求的SoC图形处理芯片渲染管线部件进行仲裁并予以实时响应,协调各模块对存储的访问,保证各个模块能够顺利地对存储器进行读/写操作;

(3)直接存储访问(DMA,1 ASIC):从命令处理器那完全接管对总线的控制,数据交换不再经过命令处理器、图像处理子集,而直接在DDR或片上存储与CPU内存之间进行数据传送。可编程图形处理器结构图如图3所示。

可编程图形处理器功能如下:

(1)支持OpenGL 1.3;

(2)支持3D图元及相应几何变换;

(3)支持缓冲区对象、顶点数组和显示列表;

(4)每个时钟周期可同时支持4个像素的处理;

(5)支持6个平面裁剪、三维裁剪;

(6)支持多达8盏灯的方向性光照和位置性光照;

(7)支持Phong和Gouraud两种光照模型;

(8)采用32位深度缓冲,实现隐藏面消除;

(9)支持6幅纹理贴图;

(10)支持颜色、深度、累计、帧缓冲区;

(11)支持位图、图像绘制、图像读取、图像复制等图像操作。

3 实验数据

采用DINI公司DNV6_F2PCIE FPGA开发板验证系统,将LEON3集成到A片,ISE14.4综合频率为86.895 MHz,所占Slice为33%。将可编程图形处理器集成到B片,综合频率为97.032 MHz,所占Slice为76%。在Dini公司配套的EMU软件下,GPU实际工作频率最高为120 MHz(高于综合频率),每个时钟周期可同时支持4个像素的处理,其图形渲染速度为120×4=480 MPixels/s,显示窗口为800×600,显示图像大小为640×480,38个时钟渲染完一个像素,如图4所示。

本文对异构SoC可编程图像系统硬件设计进行深入分析,并在FPGA上验证,得出了以下结论:

(1)采用开源LEON3处理器,大大降低了系统硬件开发成本,加快了硬件开发速度。

(2)CPU和GPU之间采用AHB总线通信,满足高性能、高时钟频率的系统模块之间的数据交互。

(3)采用自主研发的并行多核处理器架构,由15个微处理器和硬件加速协处理器构成可编程GPU。

(4)为了优化系统性能和节省芯片面积,部分微处理器的运算单元采用了定点设计,而其他处理器采用浮点设计,支持处理器并行SIMT运算,通过软件协调图形系统运行精度、性能、面积和功耗的平衡。

(5)为了加速图形运算,设计了GPU的图元装配、片段操作、图像处理子集、MMU和DMA 5个专用图形加速单元。

参考文献

[1] Aeroflex Gaisler.LEON/GRLIB configuration and development guide[EB/OL].(2014-04)[2014-05-08].http://gaisler.com/products/grlib/guide.pdf.

[2] 王超.异构多核可重构片上网络系统关键技术研究[D].合肥:中国科学技术大学,2011.

[3] 山蕊,蒋林,李涛.基于System Verilog的可重用验证平台[J].电子技术应用,2013,39(5):128-131.

[4] Xlinx中文官方网址[EB/OL].(2014)[2014].http://china.xilinx.com/products/boards-and-kits/1-2BIW6U.htm.

[5] 沈理.SOC/ASIC设计验证和测试方法学[M].广州:中山大学出版社,2006.

[6] SPARC International.The SPARC architecture manual,version 8[M].Prentice Hall,1992.

[7] Aeroflex Gaisler.GRLIB IP library user′s manual version 1.3.0-B4133[EB/OL].(2013-01)[2014-05].http://gaisler.com.

[8] Aeroflex Gaisler.GRLIB IP core user′s manual version 1.3.0-B4133[EB/OL].(2013-07)[2014-05].http://gaisler.com.

[9] 肖灵芝.异构多核图形处理器存储系统设计与实现[J].电子技术应用,2013(5):38-40.

此内容为AET网站原创,未经授权禁止转载。
Baidu
map