异构多核SoC可编程图形系统硬件设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
异构多核SoC可编程图形系统硬件设计
异构多核SoC可编程图形系统硬件设计
摘要:采用开源LEON3(basic version)处理器,运行Linux操作系统,并驱动西安邮电大学自主设计研发的基于传统GPU架构的可编程图形处理器,实现了包含可编程图形系统的SoC平台。将系统集成到Dini Group最新的DNV6_F2PCIE开发板上,采取OpenGL 编程,通过鼠标、键盘、显示器运行2D、3D程序,进行图形的绘制,从而比较充分地验证了图形系统硬件设计。关键词:图形处理器;LEON3处理器;异构多核;Linux操作系
统为打破国外垄断,研发拥有自主知识产权的图形处理器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)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公司开发研制的32bit、符合SPARC V8[6]架构的、可配置、可综合适用于SoC设计中的开源处理器IP核[7],遵循GNU LGPL协议。LEON3内部包含7级整数流水线,具有可配置的TLB的内存管理MMU(Memory Management Unit)单元,支持硬件乘/除法器以及分立的指令与数据缓存,并将其设计为4核。它的源代码由可综合的VHDL代码构成,同时LEON系列处理器的性能也比较理想,可以达到大约0.85MIPS/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可编程
图形处理器硬件设计可编程图形处理器采用传统GPU架构,并结合了可编程技术,经过9级流水线处理后,完成了一个3D基本图元的渲染过程。作为整个系统的从机,各级流水线及功能如下:(1)命令处理器(CMD,1core):CPU在主存中设置命令数据环,将处理命令放入环中,命令处理器通过总线接口、DMA引擎从环中获取命令、数据或向量地址并进行解析,如果获得的命令是3D处理命令,则将命令下发给3D引擎;如果是命令处理器需要处理的命令(缓冲区对象操作、显示列表操作等),则在命令处理器中进行处理,而不发送给3D引擎。(2)顶点染色器(VS,2core):完成几何变换(平移、缩放、旋转)、光照染色等功能。(3)图元装配器(AS,1ASIC):图元装配将从VS发送出来的带有属性的顶点根据用户指定装配模式(由glBegin指定)装配为点、线、三角形。经过AS处理后,GPU后续的流水部件将不会识别顶点,而是识别基本图元点、线和三角形。(4)平面裁剪(CLIP-Plane,1core):根据用户自定义裁剪平面(最多支持6个自定义裁剪平面)对基本图元进行裁剪。
(5)视景体裁剪(CLIP-3D,1core):根据用户所定义的视景体对基本图元进行视景体裁剪操作。
(6)视窗变换(HCW,1core):完成3D坐标向屏幕坐标的转换,经过HCW的处理后,基本图元将转变为屏幕上所见到的图元,为后续的光栅化做准备。(7)光栅化(Rasterization,5core):Rasterization根据图元的屏幕坐标计算图元内部的所有像素值,并将像素传送给像素染色器。(8)像素染色器(PS,4core):根据Rasterization所发送的片段信息计算片段的具体颜色,如果启用了纹理操作,则根据纹理函数参数信息对片段进行像素染色,最终将片段染色的值传送给段操作部件。(9)片段操作(Fragment,1ASIC):接收PS所发送的片段信息,对片段进行后期的FOP等处理,处理完毕后将最终的像素值写入Frame Buffer 中。可编程图形处理器由15个处理器以及图元装配、片断操作、内部图像处理子集、MMU和直接内存存取DMA(Direct Memory Access)5个专用图形加速单元所构成。15个处理器均为可编程处理器,其中CMD和PS为定点处理器,其他的处理器为浮点处理器。图像处理子集、MMU和DMA功能如下:(1)图像处理子集(PS_IMG_PROC,1ASIC):完成对像素数据的处理,以及纹理和雾相关信息的存储。(2)内存管理[9](MMU,1ASIC):实现对GPU存储空间分配、存储读/写控制、存储空间回收以及存储保护、地址映射等,对有访存要求的SoC图形处理芯片渲染管线部件进行仲裁并予以实时响应,协调各模块对存储的访问,保证各个模块能够顺利地对存储器进行读/写操作;(3)直接存储访问(DMA,1ASIC):从命令处理器那完全接管对总线的控制,数据交换不再经过命令处理器、图像处理子集,而直接在DDR或片上存储与CPU内存之间进行数据传送。可编程图形处理器结构图。可编程图形处理器功能如下:(1)支持OpenGL1.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.895MHz,所占Slice为33%。将可编程图形处理器集成到B片,综合频率为97.032MHz,所占Slice为76%。在Dini公司配套的EMU软件下,GPU 实际工作频率最高为120MHz(高于综合频率),每个时钟周期可同时支持4个像素的处理,其