硬件重构(共3篇)
硬件重构 篇1
0硬件知识内容的必要性
计算机科学经过几十年快速发展, 出现了很多发展方向和相应的专业, 涉及知识内容也增加了许多。这就需要各个学校在有限的教学时间内对计算机众多的知识领域进行取舍、整合, 制定出一个符合培养目标的教学计划。在一些培养应用型本科生的地方高校, 特别是如软件工程等进行软件开发的专业, 对硬件课程知识如何取舍、安排, 更是成为必须要解决好的一个重要内容。
计算机专业应该教些什么内容?国际上有ACM/IEEE-CS (美国计算机协会ACM和国际电子电气工程师协会计算机学会IEEE-CS) 计算机课程设置的方案:CC2001、CC2005、CC2008和CC2013;国内有一些知名大学计算机教育专家所做的相关课题研究组发表的《中国计算机科学与技术学科教程2002》 (简称CCC2002) 、《中国软件工程学科教程》、《中国高等学校计算机基础教育课程体系2006》 (简称CFC2006) 等都对计算机的教学提出了具体要求, 其中计算机硬件知识内容, 如数据的机器表示、存储系统组织和结构、汇编级机器组织、接口和通信等都是不可或缺的组成部分[1,2,3,4,5]。
教学应该服从于企业需求, 我们从企业的招聘需求可以看出来, 企业对计算机软件类专业, 如嵌入式软件工程专业, 对硬件知识不仅必须, 甚至还要进一步强化。而对一般偏软类计算机专业, 企业也是希望学生能够理解基本的硬件工作原理基础上的软件开发和管理维护。从课程体系上来看, 软件类专业的计算机组成、体系结构、操作系统、编译原理、嵌入式系统等软硬件课程都是相辅相成的。
1 硬件知识课程开设现状
目前我国高校计算机硬件类课程基本是参照IEEE-CS/ACM的指导性计划而设置的, 基本上保持了与国际上计算机发达国家的课程设置的一致性, 推动了计算机科学技术教育的积极、稳妥发展。计算机硬件类核心知识内容主要体现在以下几门课程中:数字逻辑、计算机组成原理、微机原理与接口技术、计算机体系结构。但在制定教学计划时, 现在一些软件专业中硬件课时被压缩了很多, 根本无法安排完这些课程, 需要对这些课程及其中的有关知识点进行合理取舍和整合。
而在实际教学过程中, 课程组织缺乏系统性, 任课教师之间缺乏足够的沟通, 各门课程内容的关联没有统一整理实施, 相关课程之间内容衔接较多, 部分内容在几门课程中重复出现, 使学生降低注意力, 误以为学过, 并因此对课程设置产生不满情绪。软硬件知识间基本分离, 学生一开始就学习了C语言, 却不知道计算机硬件原理上是如何实现C语言中的变量定义、指针、循环、过程调用和返回, 以致程序设计过程中出现一些问题时无法理解和处理。学习计算机硬件接口知识时, 虽然了解了它的基本原理, 但是却不知道如何用我们熟悉的高级语言对其进行控制。学习了操作系统和网络技术等课程, 却不知道如何用操作系统提供的接口改变硬件的工作等, 不知道在嵌入式系统如何应用相关理论。
上述情况表明, 在我们的计算机软、硬件、及其之间的衔接教学中存在不少问题, 导致学生的知识结构不完整、不系统, 教学内容落后于现代计算机硬件技术的发展, 对学生吸引力不足, 跟实际应用脱节。
所以, 我们需要制定好教学计划, 在软、硬件课程教学过程中加强交流沟通, 在软、硬件课程教学过程中加强知识相互联系, 注意知识间重叠和互补的关系, 以保证知识的系统性和完备性。如操作系统课程中的CPU调度、内存管理与计算机组成原理和计算机体系结构课程中的知识点相互穿插联系。加强理论与实验课程教学中的知识相互联系, 引导提醒学生, 通过思考建立必要的知识关联。在硬件课程如微机原理及接口技术实验中适当引入高级语言编程, 这样既加强了软硬件的联系, 又可激发学生的学习兴趣, 还能提高学生对硬件的编程能力。
2 硬件知识体系重构
计算机硬件是计算机工作的基础, 软件工作在硬件上是灵魂。只有对这个基础有个完整、系统的认识和理解, 才能更好的明白其上的软件是如何工作的, 为什么会出现这样或那样的情况, 怎么解决。开发的软件才能更合理、更有效、性能更好。所以作为计算机偏软专业的学生, 也需要掌握计算机组成、体系结构等硬件核心知识, 服务于软件课程知识。
2.1 理论教学
我们在教学计划调整时, 根据面向应用型软件人才的培养目标, 重新审视计算机硬件类课程的内容, 限于课时, 适当的删除或简化了在软件开发中不需要具备的硬件应用知识和技能, 主要从原理上解释与软件设计有关的硬件知识, 不深入到有关硬件逻辑设计的细节。如, 运算器的原理与优化, 在计算机组成原理课程中占有较多内容, 我们只对简单易于理解的串行全加器逻辑电路和原理进行描述, 并对超前进位并行加法原理做简要介绍, 使学生了解运算器的设计过程和优化意义;对乘除法器的设计简单地从手工运算出发, 大概介绍原理和逻辑框图。
强调内容的基础性、应用性和实践性, 满足计算机应用型人才, 特别是软件开发人才的需要, 构建软硬结合以软为主的知识结构, 对现有的计算机软件类专业的硬件课程:计算机组成原理、微机原理与接口技术、汇编语言程序设计和计算机体系结构进行重新整合[6]成一门课程, 来满足课时被压缩, 构建完整专业知识结构的需要。
全部教学内容共分九个部分:
(1) 计算机软硬件系统组成。介绍包括计算机系统的结构、组成与实现, 计算机系统的层次结构, 计算机的发展、分类与性能等, 使得学生对计算机系统有个全面的总体认识。
(2) 计算机中的数据表示。介绍定点数、浮点数数值数据表示与运算方法, 字符、汉字等非数值数据表示方法等。以及运算器的组成和优化。
(3) 存储器系统。介绍存储器系统的的分类、组成、层次结构、性能指标等, 高速缓冲存储器、虚拟存储器的概念、作用、工作原理等。
(4) 指令系统。介绍指令系统的体系结构、设计方法、寻址方式及发展方向等。
(5) 中央处理器。介绍CPU的组成、功能、指令周期、控制器的设计方法, 重点介绍80X86CPU的编程结构, 为后面80X86汇编语言程序设计打下一定的基础, 介绍CPU性能评测方法, 多核、多线程技术。
(6) 汇编语言及程序设计。着重介绍汇编语言的主要语句、常用伪指令和顺序结构、分支结构、循环结构、过程调用和宏展开等汇编语言程序基本结构和程序设计基本方法, 由于时间关系, 所以这部分不能展开, 重在对方法强调和能力的培养上。
(7) 流水线技术与指令级并行。主要介绍流水线技术的基本概念、性能分析等。以及指令级并行的基本概念。
(8) 总线与输入/输出系统及外围设备。介绍总线的类型、结构、传输方式、仲裁等, 以及当前常用总线SATA、USB等基本工作原理。介绍输入输出系统的组成、功能, 程序控制、中断和存储器直接访问方式的工作原理。介绍可编程接口芯片的原理、使用方法及其编程。键盘、鼠标、磁盘、光盘、显示系统等。
(9) 并行体系结构。介绍计算机体系结构的发展、并行性和分类等。
这样, 将计算机类专业多门硬件课程的内容有机地组织起来, 从软件应用的角度, 认识、理解了硬件的工作原理, 并能够知道在其上利用不同的高低级语言进行编程的原理, 及其对它的编程控制, 在讲授这些硬件知识的过程中, 适当进行软硬件穿插, 使得学生能够融会贯通, 提高学生使用计算机的能力, 解决实际应用问题的能力。
2.2 实验教学
传统硬件课程的实验和实践环节, 如组成原理主要在实验箱上接线来完成, 学生虽然做完实验了, 但不一定知其所以然。基于我们培养的是偏软的学生, 对硬件课程的掌握应服务于软件应用与开发, 所以我们尝试采用以软件的方法去理解硬件的原理。如, 实验安排上要求以C语言编程来理解计算机组成原理中有关数据表示、存储、数制转换、编码和运算过程等问题。用汇编语言编程实现理软件定时、输入输出、中断、系统调用、通信、磁盘文件操作等涉及接口软硬件的应用问题。结合学生实际应用, 利用测试软件进行计算机整机性能、局部性能测试的实验。所有实验都在计算机上以软件的方法来完成, 不需要实验电路或实验箱配置, 使学生不仅能够掌握与硬件相关的知识、软件的应用能力和使用语言进行程序设计的能力。
3 实施
我校2013年教学计划调整、课时被大量压缩的情况下, 我们在软件工程专业和网络工程专业做了上述尝试。通过对计算机类偏软专业硬件课程、知识体系进行重构、优化, 注意课程内容的选择与统筹安排, 解决了硬件类知识多, 课程之间知识点重复、相互衔接不够等一系列课程内容的安排、讲授、定位等问题。同时通过新技术的学习、研究, 改进实验方法, 解决课程内容过于陈旧、跟不上科学技术发展的脚步等问题, 适应了形式发展, 取得了较好的效果。
摘要:在计算机课时被压缩、知识增加的情况下, 讨论了计算机软件人才培养硬件课程知识的必要性、如今教学实验中存在的问题, 提出了针对软件人才培养的硬件课程知识的优化和重构方案。
关键词:软件人才,硬件课程,优化重构
参考文献
[1]中国计算机科学与技术学科教程2002研究组.中国计算机科学与技术学科教程2002[M].北京:清华大学出版社, 2002:74-80.
[2]教育部软件工程学科课程体系研究课题组.中国软件工程学科教程[M].北京:清华大学出版社, 2005:95-96.
[3]中国高等院校计算机基础教育改革课题研究组.中国高等院校计算机基础教育课程体系2006[M].北京:清华大学出版社, 2006:69-75.
[4]教育部高等学校计算机科学与技术教学指导委员会.高等学校计算机科学与技术专业公共核心知识体系与课程[M].北京:清华大学出版社, 2008:50-53.
[5]ACM/IEEE-CS.Computer Science Curricula 2013[EB/OL].http://ai.stanford.edu/users/sahami/CS2013/final-draft/CS2013-final-report.pdf
[6]蔡启先.面向软件应用型人才的计算机硬件类课程整合[J].计算机教育, 2012 (19) :75
硬件重构 篇2
目前无线通信技术高速发展, 包括GSM, WCDMA, CMDA-2000, TD-SCDMA在内的各种通信标准不断涌现。为了能够适应多标准共存的局面, 实现各制式间灵活切换和向后兼容, 基于SDR的硬件平台必须具有可重构性, 开放性和扩展性等特性。随着微电子技术的不断发展, 基于SDR的硬件平台的可重构系统已有了一些开发实例, 但仍存在着一些问题:如何选择更为紧凑的体系结构, 尽量减小多模切换时重构模块间的相互作用, 如何快速实现低功耗的可重构等。
为了解决“软硬件可重构的新一代无线通信统一平台”SDR硬件平台在可重构方面也存在的上述问题, 实现多通信体制间的切换和兼容, 本文在对可重构技术进行研究的基础上引入寄存器参数配置的动态重构方式, 提出适用于“软硬件可重构的新一代无线通信统一平台”硬件平台的动态重构方式——用寄存器参数重配置方式和模块切换方式相结合的动态重构方式。
1 硬件平台的构成
“软硬件可重构的新一代无线通信统一平台”SDR硬件平台根据SDR硬件可重构平台的基本框架[1]搭建。图1所示的清华大学“软硬件可重构的新一代无线通信统一平台”硬件平台主要由CPU、基带单元前端处理板、中频单元、射频单元、天线单元以及一些外设构成。
图1中:CPU作为主处理器主要完成人机交互、资源管理、重构模式检测处理、数据和程序下载等可重构系统的上层控制任务。基带单元前端处理板包括FPGA, ARM, FLASH, SRAM等。其中ARM作为可重构控制单元主要负责处理硬件平台的重配置和模式切换功能;通过读取可重构存储器FLASH中的重构控制程序对可重构信号处理器FPGA进行重构。FPGA作为可重构信号处理器主要完成信道编解码、调制解调、数据成帧、数字上下变频等一系列处理, SRAM作为存储器, 主要负责存储控制程序和数字处理程序。经FPGA处理后的信号然后经过数/模、模/数转换、模拟中频、射频, 最终通过天线进行收发[2]。
2 SDR硬件平台的可重构方式
“软硬件可重构的新一代无线通信统一平台”SDR硬件平台需根据情况和需求的改变进行动态重构。传统的动态重构方式主要有:链路切换方式和模块切换方式。链路切换方式因模块复用会造成严重的资源浪费。模块切换方式在节省资源消耗方面比链路切换方式更有优势, 但对于如FIR滤波器, 可通过改变参数而实现功能特性改变的模块, 模块切换方式亦会造成一定的资源浪费。针对链路切换方式和模块切换方式的资源浪费问题, “软硬件可重构的新一代无线通信统一平台”SDR硬件平台在使用模块切换方式的基础上引入了寄存器参数重配置的动态重构方式。
为了合理、公平的比较寄存器参数配置方式和模块重构方式的优劣性, 本文将以FIR滤波器为例实现寄存器参数配置方式和模块重构方式两种重构方式, 并给出两者在重构时间和资源消耗方面的对比, 以证明模块切换方式和寄存器参数配置方式相结合的动态重构方式的优异性。
2.1 模块切换方式结构框图
模块切换方式是指在系统需求改变时, 通过控制指令直接切换至所需要的功能模块, 基本上适用于所有的功能模块。而功能模块是依据功能相对独立, 联系尽量紧密, 连接尽量简单的原则进行划分的, 然后分别对每个功能模块进行设计、综合, 最后将所有模块有机的组织起来完成整个系统的设计[3]。模块切换方式结构框图如图2所示。
2.2 寄存器参数配置方式结构框图
寄存器参数配置方式是指对于可通过改变参数而实现功能特性改变的模块, 可预先开辟一个存储寄存器, 把参数存在寄存器里。在需要时, 通过读取寄存器里的参数来改变功能模块的功能特性, 从而实现该模块的动态重构。寄存器参数配置方式结构框图如图3所示。
3 寄存器参数配置方式和模块切换方式仿真验证
FIR滤波器设置采用矩形窗函数, 中心频率设置为15 MHz, 20 MHz, 25 MHz, 带宽为10 MHz, 15 MHz, 5 MHz。仿真语言为Verilog硬件语言, 首先在Modelsim 6.2e上进行功能仿真验证, 然后Quartus Ⅱ 10.0版本上进行了逻辑综合得出资源消耗情况。寄存器参数配置方式和模块切换方式仿真模块如图4所示。
模块切换方式实现FIR滤波器动态重构, 即系统运行过程中, 滤波器特征情况需要改变时, 通过切换到相应功能模块而实现动态改变FIR滤波器的类型, 特征频率, 带宽等。
寄存器参数配置方式实现FIR滤波器动态重构, 即系统运行过程中, 滤波器特征情况需要改变时, 通过读取不同寄存器里的h (n) 系数值实现动态改变FIR滤波器的类型、特征频率和带宽等。
3.1 RTL模块
模块重构方式和寄存器参数配置方式的RTL模块图如图4和图5所示。从图中可以看出RTL模块图基本符合其结构框图, 且寄存器参数配置方式相比模块重构方式模块较少。
3.2 功能仿真结果
模块切换方式有两种工作方式:方式a:各功能模块一直处于工作状态;方式b:仅有所需功能模块处于工作状态。模块切换方式的两种方式和寄存器参数配置方式的功能仿真结果如图6和图7所示。从图中可以看出模块切换方式a没有切换延时 (图6灰框中所示) , 但因各模块一直处于工作方式而导致功率消耗较大 (图6黑框中所示) , 模块切换方式b仅有所需模块处于工作状态 (图7黑框中所示) 却因模块的切换和建立时间而引起切换延时 (图7灰框中所示) , 出FIR滤波器在切换过程中存在31个时钟的切换延时。寄存器参数配置方式工作时仅有一功能模块在工作, 且一直处于工作状态, 所以相比模块切换方式a可节省大量功率消耗, 而相比模块切换方式b又可节省模块切换和建立时间 (图8灰框中所示) 。
3.3 资源消耗情况
表1为FIR滤波器在寄存器参数配置方式和模块切换两种方式下的仿真的资源消耗结果对比。从表中可以看出寄存器参数配置方式和模块切换方式相比资源消耗较少, 虽然相对于模块切换方式a增加了部分DSP block单元, 但总体上来说可节省大量的LES资源, 且随着模块数的递增, 寄存器参数配置方式节省的LES资源越多。资源消耗情况如图9~图11所示。
4 寄存器参数配置方式的优点与局限性
寄存器参数配置方式相比模块切换方式可获得重构速度和资源消耗两方面的优势。因寄存器参数配置方式相比模块切换方式可获得资源消耗方面的优势, 所以相比链路切换方式和模块切换方式, 寄存器参数配置方式可在相同有限FPGA逻辑资源上实现更多的功能模块。
寄存器参数配置方式可适用于FIR滤波器、FFT变换、IFFT变换、正余弦发生器等硬件算法实现相同、参数不同特性不同的功能模块。而对于调制方式QPSK, 16QAM, 编码方式CC, Turbo码等算法不同但功能相同的功能模块无法使用寄存器参数配置方式实现重构。
因其寄存器参数配置方式适用范围的局限性, 对于如调制方式QPSK, 16QAM, 编码方式CC, Turbo码等模块需使用模块切换方式实现重构。所以本次重构方式设计中采用模块切换方式和寄存器参数配置方式相结合的动态重构方式。通过这两重构方式的结合, 不但可以减小模块切换方式造成的模块重复和资源浪费, 还可克服寄存器参数配置重构方式适用范围的局限性。
5 结 语
为了研究适合清华大学“软硬件可重构的新一代无线通信统一平台”SDR硬件平台的低消耗、高速度、高扩展性的可重构方式。本文引入了寄存器参数配置方式的动态可重构方式, 并通过仿真可知寄存器参数配置方式在模块构造、资源消耗、重构速度方面都具有优势。但因其适用范围的局限性, “软硬件可重构的新一代无线通信统一平台”中的SDR硬件平台采用寄存器参数重配置方式和模块切换方式相结合的重构方式。这种相结合的方式不但可以减少资源消耗, 提高重构速度, 同时也可以突破寄存器参数配置方式的局限性, 实现硬件平台的动态快速重构。
参考文献
[1]粟欣, 许希斌.无线电原理与技术[M].北京:人民邮电出版社, 2010.
[2]王宽, 粟欣, 张汉毅, 等.基于通用处理器的多模无线通信硬件平台实现[J].移动通信, 2010, 34 (10) :85-89.
[3]周盛雨, 孙辉先, 陈晓敏, 等.基于模块化设计方法实现FPGA动态部分重构[J].微计算机信息, 2008, 24 (5) :164-166.
[4]LUO Zhi-gang, LI Wei, ZHANG Yan, et al.A multi-standard SDR base band platform[C]//Proceedings of the2003 International Conference on Computer Networks andMobile Computing.[S.l.]:ICCNMC, 2003:1110-1120.
[5]MINDEN G J, EVANS J B, SEARL L, et al.KRAP:aflexible software-defined radio development platform[C]//proceedings of DySPAN 2007 2nd IEEE International Sym-posium on New Frontiers in Dynamic Spectrum Access Net-works.[S.l.]:IEEE, 2007:428-439.
[6]SHIBAMURA H, FUKUYAMA M, UCHIDA D, et al.EXPRESS-1:a dynamically reconfigurable platform usingembedded processor FPGA.[C]//Proceedings of 2004IEEE International Conference on Field-ProgrammableTechnology.[S.l.]:IEEE, 2004:209-216.
[7]田耘, 徐文波, 张延伟, 等.无线通信FPGA设计[M].北京:电子工业出版社, 2008.
[8]TAMAS C A, VULPE V.SDR:transmitter reconfigurableplatform for software radio[C]//2009 15th InternationalSymposium for Design and Technology of Electronics Packa-ges.[S.l.]:SIITME, 2009:327-330.
[9]李明全, 粟欣, 葛利嘉.新一代无线通信系统的软件可重构研究[J].计算机工程与设计, 2009, 30 (12) :2908-2910.
硬件重构 篇3
可重构处理器[1]一般由通用处理器和可重构阵列(Reconfigurable Cell Array,RCA)组成,是一种将软件的灵活性和硬件的高效性结合在一起的处理器架构,在性能、功耗和灵活性等关键指标之间具有很好的平衡。一些研究成果如Morpho Sys[2]、ADRES[3]以及XPP PACT[4]已经证明粗颗粒度的可重构处理器能够有效地提高多媒体应用的执行速度。可重构处理器设计的关键问题是如何将应用划分到通用处理器和可重构处理器上执行,一种常见的划分标准是将程序中的关键循环划分到可重构阵列上执行。关键循环是指那些占用了大量计算时间的循环,在可重构阵列上执行这类循环可有效提高应用的执行速度。
受到可重构阵列硬件资源的限制,规模较大的关键循环不能直接在可重构阵列上执行。文献[5]采用了时分复用的策略解决这一问题。循环被划分为多个部分按照顺序在可重构阵列上配置、执行。这种方法的优点是阵列内部传输一般在阵列内部传输,可以实现较高的传输速率,缺点是每次循环中可重构阵列的配置信息都需要更改多次,配置的代价较高,文献[6]在时分复用的同时利用多套配置信息空间进行配置信息预取,当需要改变阵列的功能时,直接进行配置信息切换。这种多上下文配置的方法可以有效降低配置代价,但是需要多套的配置信息,增加了面积的代价,而且后台的配置信息预取同样需要一定的时间。
笔者提出了一种关键循环在可重构处理器上的软硬件划分技术。该技术将较大的关键循环划分成在处理器上执行的软件部分和在可重构阵列上执行的硬件部分,并且以最小化两者之间的数据传输代价为目标。
2 问题描述
这里用循环体来描述一个循环。循环体可以用任务图表示,任务图G(V,E)是一些节点和边的集合:其中V表示任务节点的集合,E表示节点之间边的集合。任务图中的每一个节点表示一个能够在可重构单元上执行的运算,每一条边对应着输入输出或者节点之间的数据依赖关系,边的方向表示数据的流向。
通过对任务图的分析,可以得到循环的关键路径长度以及每个结点的可能的控制步。控制步是指任务图在执行时由于节点间的数据依赖关系而给节点排出的执行顺序,所有节点的最大控制步就是该任务图的关键路径长度。
图1b为可重构处理器的示意图,其中包括通用处理器和4×4可重构阵列模型,模型中每4个可重构单元(Reconfigurable Cell,RC)组成1行,相邻2行之间通过路由模块相连,每1行的可重构单元可以通过路由获得上1行任意1个可重构单元的输出结果,第1行可重构单元的输入数据来自于最后1行可重构单元的输出数据。每1行之间用寄存器分割,并拥有充足的存储单元来保存运算的中间数据。每个可重构单元有2个输入1个输出,能在1个周期内完成任务图中单个节点的运算。
图1中循环的任务图中共有18个节点,而可重构阵列只有16个可重构单元,因此这样的循环不能直接映射到可重构阵列上,需将该循环进行划分。
3 算法描述
首先,划分必须尽量减少两部分之间的数据传输量。循环划分为两部分之后最大的代价来自于两者之间的数据传输。
其次,在划分的过程中应该保证数据传输的单向性,也就是软件部分和硬件部分的边都是同向。如果存在双方向的数据传输,那么两部分都需要等待对方的计算结果,失去了两部分之间可能存在的并行性。
再次,划分中要尽量避免把关键路径上的节点划分到处理器上。任务图的执行时间和关键路径长度紧密相关,软件部分执行的速度要远小于硬件部分的执行速度,如果关键路径上的节点被划分到软件部分,那么相当于增加了原有的关键路径长度,会降低性能。
最后,划分应该使得软件部分的节点数目最小,充分发挥硬件的加速功能。
划分算法首先假定任务图中所有的节点都在可重构阵列上执行,然后选择输入节点作为划分的对象,计算出划分该节点所增加的数据传输代价,根据代价决定是否进行划分。
如图2所示,该任务图有5个输入数据,如果划分节点1,那么整个系统会增加1个数据传输,即节点1的输出结果需要传输给硬件部分;如果划分节点2,则会增加3个输入数据,即节点2的输出结果需要传输给可重构阵列,而数据f和d既需要传输给处理器,也需要传输给可重构阵列,因此节点1比节点2更适合在处理器上执行。
划分需要考虑该节点是否处于关键路径上。非关键路径的数据节点的优先级高于关键路径节点。
划分算法的伪代码如下:
算法中的ALAP调度是指最晚时间调度,该调度给出任务图中节点可能的最晚控制步。对于一个节点个数为n的任务图,ALAP调度的复杂度为O(n2),最坏情况下,每次调度需要寻找所有输入节点,所以划分算法的复杂度为O(n3)。
4 划分结果
图3是对椭圆滤波器任务图的划分结果。划分一共切断了任务图的4条边,这4条边的数据传输方向都是从软件部分到硬件部分。划分之后,系统增加了5个数据传输量。该划分保持了两部分之间的并行性,减少了划分之后的关键路径长度。
图4给出了使用不同的处理方法得到的执行100次随机循环的时间。横坐标为循环中的节点数目。节点数为35时软硬件划分的方法相比于文献中的时分复用和多上下文配置,执行时间分别降低了29%和19%,节点数为55时,执行时间分别降低了22%和13%。
需要注意的是当循环规模小于32个节点,也就是循环规模小于上下文总量时,上下文配置的方法结果好于软硬件划分的方法,但是当循环的规模进一步加大,上下文配置的执行时间远大于软硬件划分的方法。这是因为在循环规模不超过配置信息总量时,只需要进行配置信息切换而不需要进行配置信息的预取。多上下文配置的方法不能处理很大的任务,所以在循环规模增大时,软硬件划分的方法是最优的方法。
5 验证系统
图5是验证系统REMUS的结构示意图。该系统包括ARM926EJ-S和Xilinx FPGA以及总线、存储器等其他部分。ARM926作为主处理器控制系统运行,工作频率为200 MHz。Xilinx FPGA实现可重构阵列的功能,工作频率为30 MHz。调试工具是ARM Real View Development Suite 2.2。
运动估计是H.264中计算量较大的部分[7],其中最关键的运算是对绝对误差和的计算,即
将16×16的SAE用提出的划分技术划分成8×8的SAE,剩余的任务在处理器上完成。对于8×8的SAE,首先执行64次绝对值运算,然后切换配置信息,对64个绝对值进行加法运算。
IDCT算法[8]中矩阵的转置被划分到处理器上执行,而其他的运算在可重构阵列上执行。
表1是一些多媒体核心算法在不同结构上的执行时间。第2列是ME算法中16×16 SAE计算的比较。REMUS相比于TI-C64 DSP[9]和Morphosys分别有6.92倍和1.79倍的速度提升。8×8 IDCT的性能比较中,REMUS性能提高了2.2倍,相比于ADRES(8×8的32 bit FU)性能提高了12%。
时钟周期
使用了论文中的软硬件划分技术,REMUS相比于同等规模(Morphosys)或者更大的规模(ADRES,XPP PACT),都有一定的性能提升。
6 结论
基于将应用中的循环映射到可重构阵列能够提高执行速度的事实,针对较大循环的执行问题,笔者提出了一种循环可重构处理器上软硬件划分技术。通过对随机循环的测试,相比于原有的处理较大循环的方法,该技术降低了13%~29%的循环执行时间。论文在FPGA验证系统上通过多种多媒体核心算法验证了该划分技术。相比于类似的结构,该验证系统在不增加阵列规模的情况下,有平均3.5倍的性能提升。
摘要:针对较大循环在可重构处理器上的映射问题提出了一种启发式的算法,将循环划分为在处理器上执行的软件部分和在可重构阵列上执行的硬件部分,并且使两者之间的数据传输量最小。通过测试,相比于原有处理较大循环的方法,该技术降低了13%~29%的循环执行时间。在FPGA验证系统上通过H.264中的运动估计和MPEG-2中的IDCT等多种多媒体核心算法验证了该划分技术。使用该划分技术后,验证系统相比于类似结构在不增加硬件规模的情况下,有平均3.5倍的性能提升。
关键词:可重构处理器,可重构阵列,循环映射,软硬件划分
参考文献
[1]HARTENSTEIN R.A decade of reconfigurable computing:A vi-sionary retrospective[C]//2001Design,Automation and Test in Eu-rope Conference and Exposition(DATE2001).Munich,Ger-many:IEEE Press,2001:642-649.
[2]SINGH H,LEE M-H,LU Guangming.MorphoSys:An integrated reconfigurable system for data-parallel and computation-intensive applications[J].IEEE Trans.Computers,2000,49(5):465-481.
[3]BEREKOVIC M.Mapping of Video compression algorithms on the ADRES Coarse-grain reconfigurable array[C]//MSP7Workshop on Multimedia and Stream Processors.Barcelona,Spain:[s.n.],2005:47-52.
[4]XPP-III processor overview[EB/OL].[2009-04-01].http://www.pactxpp.com/main/download/XPP-III_overview_WP.pdf.
[5]BONDALAPATI K.Parallelizing DSP nested loops on reconfig-urable architectures using data context switching[C]//Proceedings of the38th Annual Design Automation Conference.New York:ACM Press,2001:273-276.
[6]VIKRAM K N,VASUDEVAN V.Mapping data-parallel tasks ontopartially reconfigurable hybrid processor architectures[J].IEEE Trans.VLSI Systems,2006,14(9):1010-1023.
[7]崔岩松,段大高,邓中亮.多宏块模式多参考帧快速搜索算法[J].北京邮电大学学报,2005,28(4):37-40.
[8]胡嘉凯,梁立伟,蒋建国,等.基于TMS320C64x DSP的H.264整数变换快速实现[J].电视技术,2005(4):17-19.