在系统编程技术综述
并行计算编程模型及系统架构研究

并行计算编程模型及系统架构研究一、综述随着信息技术的飞速发展,计算任务的数量和复杂性呈现出迅速增长的态势。
传统的单处理器计算系统已经无法满足这些日益增长的需求,因此并行计算技术在众多领域得到了广泛的关注和研究。
并行计算编程模型及系统架构的研究不仅具有理论价值,而且在实际应用中具有广泛的意义。
在过去的几十年里,人们提出了许多并行计算编程模型,包括共享存储模型、分布式内存模型和图形处理器模型等。
这些模型各自具有一定的优势和局限性,适用于不同类型的应用场景。
本文将对这些并行计算编程模型及系统架构进行综述,以期为相关领域的研究和应用提供有益的参考。
随着芯片技术的发展,硬件性能得到了极大的提升,这为新并行计算模型的出现提供了物质基础。
随着计算机体系结构的改进,如多核处理器、GPU和分布式计算机系统等,也为新并行计算模型的实现提供了可能。
在并行计算编程模型方面,本文将重点关注共享存储模型、分布式内存模型和图形处理器模型等方面的研究进展。
在分布式内存模型方面,本文将介绍一致性哈希、目录一致性协议等相关技术。
在图形处理器模型方面,本文将探讨通用计算GPU和图形处理器编程模型(GPGPU)的发展及其在密码学、科学计算和机器学习等领域的应用。
在并行计算系统架构方面,本文将分析多种计算系统的结构,如层次结构、众核计算系统和可扩展计算系统等。
本文还将关注如何提高并行计算系统的可扩展性、性能和容错性等方面的研究。
本文将对并行计算编程模型及系统架构进行深入的综述,为相关领域的研究和应用提供有价值的参考。
1. 并行计算的重要性与挑战随着信息技术的飞速发展,数字数据处理和存储的需求呈现出爆炸性增长。
在这种背景下,并行计算逐渐成为解决复杂计算问题和提高计算效率的关键手段。
并行计算不仅能够缩短计算时间,提高资源利用率,还能为多学科领域的研究提供强大的支持,推动科学研究的进步。
提升计算效率:并行计算通过在多个处理器上同时执行多个任务,显著提高了计算速度,缩短了问题的解决周期。
自动化专业专业综述

HEFEI UNIVERSITY系别电子信息与电气工程系班级09自动化姓名完成时间 2012 /12 /8 自动化专业综述在听取了几位专业老师对各专业的详细介绍之后,我做了认真的综合分析,一番深思熟虑加之我个人的兴趣爱好,我决定选择自动化专业。
自动化专业简介:自动化专业主要研究的是自动控制的原理和方法,自动化单元技术和集成技术及其在各类控制系统中的应用。
它以自动控制理论为基础,以电子技术、电力电子技术、传感器技术、计算机技术、网络与通信技术为主要工具,面向工业生产过程自动控制及各行业、各部门的自动化。
它具有“控(制)管(理)结合,强(电)弱(电)并重,软(件)硬(件)兼施”等鲜明的特点,是理、工、文、管多学科交叉的宽口径工科专业。
学生在校时一般学习半导体变流技术、自动控制系统、电力拖动与电气控制、最优控制、微型计算机控制技术、计算机通讯与网络、数字信号处理、软件工程、传感器原理、自动检测技术、系统工程概论、运筹学和情报检索等近40门课程。
本专业是一门适应性强、应用面广的工程技术学科。
旨在培养学生成为基础扎实、自动控制技术知识系统深入、计算机应用能力强的高级工程技术人才。
所以学生在毕业后都能从事自动控制、自动化、信号与数据处理及计算机应用等方面的技术工作。
就业领域也非常的宽广,比如高科技公司、科研院所、设计单位、大专院校、金融系统、通信系统、税务、外贸、工商、铁路、民航、海关、工矿企业及政府和科技部门等。
本专业毕业生有着广阔的就业渠道,因为自动化技术的应用广泛,其就业领域也五花八门。
正因为如此,有些同学在择业时容易产生“皇帝的女儿不愁嫁”的心理,认为自己的自动化专业紧俏,社会需求量大,工作单位可以随自己挑。
尽管现在学生就业实行的是“双向”选择的政策,你选用人单位,但用人单位也在选你。
谦虚、踏实、稳重是本专业毕业生在择业时的第一选择。
根据近几年毕业生就业的情况看,他们的工作都非常理想,收入状况也颇为乐观。
图计算体系结构和系统软件关键技术综述

图计算体系结构和系统软件关键技术综述1. 引言图计算是指对大规模图数据进行分析和处理的计算过程。
由于图数据的复杂性和规模巨大,传统的计算方法已无法满足对图数据的高效处理需求。
因此,图计算体系结构和系统软件的研究和发展成为了当前计算领域的热点之一。
本文将对图计算体系结构和系统软件的关键技术进行综述。
2. 图计算体系结构2.1 分布式图计算体系结构分布式图计算体系结构是指将大规模图数据分布式地存储和计算的结构。
它由图计算引擎、分布式存储和通信框架等组件构成。
图计算引擎负责图算法的实现和优化,分布式存储用于存储分布式图数据,通信框架用于不同计算节点之间的通信。
常见的分布式图计算体系结构有Google的Pregel和PowerGraph、Apache的Giraph等。
2.2 多核图计算体系结构多核图计算体系结构是指利用多核CPU或GPU来并行处理图数据的结构。
它通过将图数据分割成多份,并在不同核心或处理器上并行计算,从而提高图计算的速度和效率。
为了充分利用多核计算资源,多核图计算体系结构需要考虑数据划分、任务调度和数据同步等关键技术。
目前,多核图计算的研究主要集中在GPU上,如NVIDIA的CUDASWEP和GunRock等。
3. 系统软件关键技术3.1 图计算编程模型图计算编程模型是指用于描述和处理图数据的编程模型。
常见的图计算编程模型有Pregel模型和GraphLab模型。
Pregel模型将图计算过程分为多轮迭代的超步,通过消息传递进行通信和计算。
GraphLab模型则采用顶点中心的计算模式,通过定点更新和边的消息传递进行计算。
这些图计算编程模型在不同的应用场景中有不同的优势。
3.2 图计算优化策略图计算优化策略是指为了提高图计算性能,采取的一系列优化手段和技术。
常见的图计算优化策略有数据压缩、负载均衡和任务划分等。
数据压缩通过压缩图数据的表示方式,减少存储和传输开销。
负载均衡策略通过合理分配计算节点的负载,使得整个计算过程更加均衡和高效。
PLC文献综述

PLC文献综述PLC(可编程逻辑控制器)文献综述一、引言可编程逻辑控制器(PLC)是一种广泛应用于工业控制领域的设备,它集计算机技术、通信技术、控制技术和电子技术于一体,具有灵活性强、可靠性高、易于编程和维护等优点。
随着工业4.0和智能制造的快速发展,PLC在自动化生产线、机器人控制、过程控制等领域的应用越来越广泛。
本文将从PLC的定义、发展历程、研究现状和未来趋势等方面对其进行文献综述。
二、PLC的定义和发展历程PLC是一种数字运算操作的电子系统,专为工业环境下的应用而设计。
它采用可编程的存储器,用于在其内部存储执行逻辑运算、顺序控制、计时、计数和算术运算等操作的指令,并通过数字或模拟式输入/输出控制各种类型的机械或生产过程。
PLC的发展历程可以追溯到20世纪60年代,当时美国汽车工业生产线上出现了一种名为“可编程序控制器”的设备,用于控制生产线的运行。
随着计算机技术和微电子技术的发展,PLC的功能不断增强,应用范围也越来越广泛。
目前,PLC 已经成为工业自动化领域的重要组成部分。
三、PLC的研究现状目前,PLC的研究主要集中在以下几个方面:1.PLC的硬件设计:PLC的硬件设计主要包括中央处理器(CPU)、存储器、输入输出模块等。
随着技术的发展,PLC的硬件设计越来越先进,例如采用多核CPU、高速存储器和大容量输入输出模块等,提高了PLC的处理速度和性能。
2.PLC的软件设计:PLC的软件设计主要包括编程语言、编程环境和应用程序等。
目前,PLC的编程语言主要有梯形图(Ladder Diagram)、指令表(Instruction List)、结构化文本(Structured Text)等,编程环境也越来越友好,例如采用图形化编程方式等。
此外,PLC的应用程序也不断丰富,例如实现运动控制、过程控制、网络通信等功能。
3.PLC的通信技术研究:随着工业自动化和信息化的融合,PLC的通信技术研究越来越重要。
FANUC--0系统操作编程说明书

FANUC--0系统操作编程说明书第一篇:编程1.综述1.1可编程功能通过编程并运行这些程序而使数控机床能够实现的功能我们称之为可编程功能。
一般可编程功能分为两类:一类用来实现刀具轨迹控制即各进给轴的运动,如直线/圆弧插补、进给控制、坐标系原点偏置及变换、尺寸单位设定、刀具偏置及补偿等,这一类功能被称为准备功能,以字母G以及两位数字组成,也被称为G代码。
另一类功能被称为辅助功能,用来完成程序的执行控制、主轴控制、刀具控制、辅助设备控制等功能。
在这些辅助功能中,Tx x用于选刀,Sx x x x用于控制主轴转速。
其它功能由以字母M与两位数字组成的M代码来实现。
1.2准备功能本机床使用的所有准备功能见表1.1:表1.1 G代码分组功能*G0001定位(快速移动)*G0101直线插补(进给速度)G0201顺时针圆弧插补G0301逆时针圆弧插补G0400暂停,精确停止G0900精确停止*G1702选择X Y平面G1802选择Z X平面G1902选择Y Z平面G2700返回并检查参考点G2800返回参考点G2900从参考点返回G3000返回第二参考点*G4007取消刀具半径补偿G4107左侧刀具半径补偿G4207右侧刀具半径补偿G4308刀具长度补偿+G4408刀具长度补偿-*G4908取消刀具长度补偿G5200设置局部坐标系G5300选择机床坐标系*G5414选用1号工件坐标系G5514选用2号工件坐标系G5614选用3号工件坐标系G5714选用4号工件坐标系G5814选用5号工件坐标系G5914选用6号工件坐标系G6000单一方向定位G6115精确停止方式*G6415切削方式G6500宏程序调用G6612模态宏程序调用*G6712模态宏程序调用取消G7309深孔钻削固定循环G7409反螺纹攻丝固定循环G7609精镗固定循环*G8009取消固定循环G8109钻削固定循环G8209钻削固定循环G8309深孔钻削固定循环G8409攻丝固定循环G8509镗削固定循环G8609镗削固定循环G8709反镗固定循环G8809镗削固定循环G8909镗削固定循环*G9003绝对值指令方式*G9103增量值指令方式G9200工件零点设定*G9810固定循环返回初始点G9910固定循环返回R点从表1.1中我们可以看到,G代码被分为了不同的组,这是由于大多数的G代码是模态的,所谓模态G代码,是指这些G代码不只在当前的程序段中起作用,而且在以后的程序段中一直起作用,直到程序中出现另一个同组的G代码为止,同组的模态G代码控制同一个目标但起不同的作用,它们之间是不相容的。
无人机编程技术及智能系统设计

天线
GPS/GLONASS 接收机
机载高度,空速航 向,姿态角传感器
图 1 无人机功能结构简图
定位与导航 控制计算机
硬件平台 (DSP 计算机)
无线电定位系统
副翼 方向舵
舵机 执行机构
其中 GPS/GLONASS 接收模块选用微小型接收装置;机载姿态传感器选用贴片 式芯片;为了保证自主导航飞行时航向的精度,除了选取航向传感器外,还应用了 一个光纤陀螺;无线电接收系统指的是无线电定位及与地面站(GCS)通讯时数据 链路的机载接收装置;机载计算机包括 3 个 DSP 处理器:GPS 接收解码 DSP,导 航 DSP 和飞控 DSP;舵机选用 Futaba 专用舵机。整个飞控导航系统体积仅为 180× 120×70 mm,总重量不超过 1.5kg(包含安装壳体)
1
的线性加速度等等,这些信息反馈回主控器,需要经过数据处理如滤波, 融合,反馈回算法等。 此外如地面站(电脑中,手机中)都需要编程实现,还有一些单独模块 是可以选择个人编程的,如电调,GPS,遥控器等。
1.3.无人机编程关键技术 1,首先,是状态估计。无人机在天上飞,它必须明白自己的状态,例 如姿态,位置,速度等,才能根据控制算法来调整控制。机器人依靠各 种传感器来获取离散数据,但不幸的是,各种基础传感器,例如陀螺仪, 加速度计等,功能是很有限的,不能给你太多信息,那么就需要你写一 个状态估计程序,来把这些传感器数据处理、融合成你需要的信息。 2,是滤波。传感器的数据,在现实中,是很“脏”的,也就是说被各 种噪声污染得很厉害。要从大量噪声中过滤出真实的传感器数据,这就 涉及到滤波。比较常用的滤波算法有卡尔曼滤波与其各种非线性变体, 新一点的还有粒子滤波,能更适应非线性的真实环境。 3,控制算法。现在你已经估计了无人机的状态了,那么就需要调整各 个控制力矩的输出,将无人机调整到你需要的状态。控制算法里比较简 单和常用的有 pid 以及其各种变体,但 pid 也是一种线性控制,真实环 境是非线性的,我们一般可以通过加快控制-反馈的频率来近似。 4,任务逻辑。无人机执行具体任务的流程和逻辑。 5,通讯程序。你的指令要发给无人机,无人机的数据要传给你,涉及 到通讯的问题,这个问题比较简单,不多提。 6,上位机、地面站。要为无人机的操作准备一套人机界面。
基于java的奶茶店点餐系统的设计与实现文献综述怎么写

文献综述是学术论文中的一个部分,用于回顾和总结相关领域的研究文献。
在基于Java的奶茶店点餐系统的设计与实现文献综述中,你可以按照以下结构进行写作:### 1. 引言在引言部分,简要介绍奶茶店点餐系统的设计与实现的背景和重要性。
说明在当前社会环境下,数字化点餐系统在提高服务效率和顾客体验方面的重要作用。
同时,指出采用Java作为开发语言的合理性和流行程度。
### 2. 基于Java的点餐系统设计与实现#### 2.1 Java在企业应用中的应用在这一部分,概述Java在企业级应用开发中的广泛应用,特别是在构建信息系统、数据库应用和Web应用方面的优势。
引用相关文献,说明Java作为一种面向对象、跨平台的编程语言,为奶茶店点餐系统的设计提供了可靠的技术支持。
#### 2.2 基于Java的点餐系统开发框架介绍一些常用的基于Java的开发框架,例如Spring、Hibernate 等,这些框架在企业级应用中被广泛使用。
讨论这些框架在点餐系统中的实际应用和优势。
### 3. 奶茶店点餐系统的设计与实现#### 3.1 系统需求分析分析奶茶店点餐系统的具体需求,包括用户需求、商家需求、系统性能等方面。
对文献中已有的类似研究进行比较,指出已有系统的不足之处,为新系统的设计提供依据。
#### 3.2 系统架构设计讨论奶茶店点餐系统的整体架构设计,包括前端设计、后端设计、数据库设计等。
强调采用Java技术实现的合理性和可行性。
#### 3.3 关键技术与算法介绍在系统设计与实现中所用到的关键技术和算法,如用户身份验证、订单处理、支付系统等。
阐述这些技术和算法的选择原因,并与相关文献进行比较。
### 4. 文献综述的总结总结当前文献中关于基于Java的奶茶店点餐系统设计与实现的研究情况。
强调已有研究的成果和不足,为进一步的研究提供启示。
### 5. 展望未来研究方向提出未来奶茶店点餐系统设计与实现的可能研究方向,包括系统性能优化、用户体验改进、安全性加强等。
异构众核系统及其编程模型与性能优化技术研究综述

异构众核系统及其编程模型与性能优化技术研究综述巨 涛,朱正东,董小社(西安交通大学电子与信息工程学院,陕西西安710049) 摘 要: 异构众核系统已成为当前高性能计算领域重要的发展趋势.针对异构众核系统,从架构、编程、所支持的应用三方面分析对比当前不同异构系统的特点,揭示了异构系统的发展趋势及异构系统相对于传统多核并行系统的优势;然后从编程模型和性能优化方面分析了异构系统存在的问题和面临的挑战,以及国内外研究现状,结合当前研究存在的问题和难点,探讨了该领域进一步深入的研究方向;同时对两种典型的异构众核系统CPU+GPU和CPU+MIC进行不同应用类型的Benchmark测试,验证了两种异构系统不同的应用特点,为用户选择具体异构系统提供参考,在此基础上提出将两种众核处理器(GPU和MIC)结合在一个计算节点内构成新型混合异构系统;该新型混合异构系统可以利用两种众核处理器不同的处理优势,协同处理具有不同应用特点的复杂应用,同时分析了在该混合异构系统下必须要研究和解决的关键问题;最后对异构众核系统面临的挑战和进一步的研究方向进行了总结和展望.关键词: 异构众核系统;高性能计算;异构计算;编程模型;性能优化中图分类号: TP301 文献标识码: A 文章编号: 0372-2112(2015)01-0111-09电子学报URL:http://www.ejournal.org.cn DOI:10.3969/j.issn.0372-2112.2015.01.018TheFeature,ProgrammingModelandPerformanceOptimizationStrategyofHeterogeneousMany-CoreSystem:AReviewJUTao,ZHUZheng-dong,DONGXiao-she(SchoolofElectronicsandInformationEngineering,Xi’anJiaotongUniversity,Xi’an,Shaanxi710049,China)Abstract: Theheterogeneousmany-coresystemhasemergedasapromisingdevelopingtrendinthehighperformancecom-putingarea.Inthispaper,wefirstrevealedthedevelopingtrendanddominantpositionoftheheterogeneoussystemsviaanalyzingtheirarchitectures,programmingandapplicationcharacteristics.Secondly,wediscussedtheprogrammingmodelandperformanceoptimizationofcurrentheterogeneoussystems,andsummarizedtherelativeresearchtrends.Thirdly,weverifiedthedifferentappli-cationbehaviorsoftheGPUandMICheterogeneoussystembyrunningdifferenttypesofBenchmark,whichprovidesthereferenceforusertoselectthespecificheterogeneouscomputingplatformand,thebasisofcomposingthehybridheterogeneoussystemwhichcombinesthetwotypesofmany-coreprocessor(GPUandMIC)intoanindividualcomputingnode.Thishybridheterogeneoussys-temcanfullyexploitthecomputingpotentialofthetwotypesofmany-corecoprocessorstocoordinatehandlingthecomplexappli-cationwithdifferentapplicationbehaviors.Finally,someopenissuesandfuturedirectionsintheheterogeneoussystemwereviewed.Keywords: heterogeneousmany-coresystem;high-performancecomputing;heterogeneouscomputing;programmingmodel;performanceoptimization1 引言 为了达到高性能低功耗的目的,新型异构众核系统通常采用主处理器+协处理器的体系架构,该架构下主处理器(CPU)负责处理复杂的逻辑控制任务,协处理器负责处理计算密度高、逻辑分支简单的大规模数据并行任务[1],两者协同为具体的应用提供高效的计算平台.2012年11月发布的TOP500榜单中[2],有62套系统使用了主处理器+协处理器(加速器)混合架构,其中位居榜首的Titan和排名第八的我国Tianhe-1A都采用了NVIDIAGPU作为加速计算部件.而上届榜单中只有58套系统使用了主处理器+协处理器(加速器)架构,这一变化充分说明在高性能计算领域异构系统发展迅速.首次进入该榜单TOP10,排名第七的Dell公司的收稿日期:2013-09-18;修回日期:2014-03-10;责任编辑:李勇锋基金项目:国家自然科学基金(No.61173039,No.61202041);国家863高技术研究发展计划(No.2012AA010904,No.2012AA01A306);国家科技支撑计划(No.2011BAH04B03)第1期2015年1月电 子 学 报ACTAELECTRONICASINICAVol.43 No.1Jan. 2015Stampede系统使用了最新的IntelMICKnightsCorner协处理器,同时TOP500整个榜单中还有其它6个系统也同样采用了最新的IntelMICKnightsCorner协处理器.而仅仅六个月前的上次TOP500排名中,只有一套系统使用了IntelMICKnightsCorner协处理器,且位列TOP500第150位.2013年6月17日发布的最新TOP500榜单中,我国Tianhe-2以每秒33.86千万亿次的浮点运算速度荣登TOP500榜首,其采用的也是主处理器+协处理器的混合架构,且使用了最新的IntelMICKnightsCorner协处理器.这一变化进一步说明新型异构系统在高性能超级计算机领域的地位越来越重要.TOP500中系统架构的整体发展趋势,反映出异构系统将是未来高性能计算机系统重要的发展方向.随着新的协处理器技术的出现,这种混合架构将会在后续的万万亿次、百亿亿次超级计算机系统中发挥更重要的作用.异构计算也被业界视为继单核、多核之后的第三个时代,它将打破摩尔定律,有效解决能耗、可扩展性等问题,成为高性能计算领域的一种重要新兴模式[1,3,4].针对当前高性能计算领域四种典型的异构系统架构CELL、CPU+GPU、APU和CPU+MIC,具体分析了各种架构的特点及其应用范围;对两种典型的片间异构系统CPU+GPU和CPU+MIC的编程特点进行了分析对比;重点讨论了异构系统编程模型和性能优化方面存在的问题及国内外的研究现状,总结了相关的研究趋势和解决相应问题的研究思路;利用不同的Bench-mark测试程序对两种典型异构系统(CPU+GPU和CPU+MIC)进行测试,依据测试结果,分析它们处理应用时的不同特点,总结了它们不同的应用范围;提出了将两种异构架构结合形成一种混合异构系统的思路,以更好的发挥两种架构的各自优势来处理更复杂的大规模计算问题,同时分析了在该混合架构下必须要研究和解决的关键问题.2 异构系统架构特点 当前异构系统主要有以下几种架构:Cell/B.E、CPU+GPU、APU、CPU+MIC及CPU+FPGA.其中FPGA主要用在嵌入式系统中的高性能需求中,而传统意义上的高性能领域使用的异构系统架构主要有Cell/B.E、CPU+GPU、APU和CPU+MIC.本文主要针对传统意义上的节点级异构,故对FPGA不作详细讨论,对其详细的论述可参考文献[1].2畅1 Cell/B.E.异构系统架构Cell/B.E.(CellBroadbandEngine)是依据CBEA(CellBroadbandEngineArchitecture)技术所实现的处理器,即通常所说的Cell处理器.就技术而言,Cell/B.E.是以原有PowerPC架构为基础,再针对娱乐用3D绘图运算的需求添加协处理单元设计而成.Cell处理器架构如图1所示[1].Cell处理器是一种完全独立的异构处理器,使用成本较高,现在只用在一些高端服务器上[5].由于其程序开发难度较大,限制了Cell处理器在通用高性能领域的普及,同时也制约了它的进一步发展,它在异构系统中的优势逐渐衰退.2畅2 GPU异构系统架构GPU异构系统主要采用CPU+GPU架构.GPU的主要设计目标是以大量的线程实现面向高吞吐量的数据并行计算,适合于处理计算密度高、逻辑分支简单的大规模数据并行任务.而CPU具有复杂的逻辑控制单元和大容量的缓存,有低的数据传送延迟,能够适应各种不同类型的运算情况,尤其擅长复杂的逻辑运算.采用CPU+GPU架构,将CPU和GPU各自优点结合起来,让GPU处理数据密集型的并行任务,而由CPU进行复杂的逻辑事务处理,从而充分发挥CPU和GPU各自优势,最大限度的利用异构系统的处理能力,降低计算成本和能耗.图2为GPU异构系统架构[6].2畅3 APU异构系统架构APU(AcceleratedProcessingUnit)是AMD推出的整合了x86/x64CPU处理核心和GPU处理核心的新型“融聚”(Fusion)处理器.具体架构如图3所示[7].APU的主要特点是它内含由标量和矢量硬件构成的全部处理能力,由于将两种计算核心整合在一起,受芯片空间和制造工艺及散热的制约,处理器的主频及处理核数目受到限制,同时当前APU中X86CPU和GPU矢量处理器还没有实现无缝集成[8],所以其整体的计算性能与主处理器和协处理器分离的架构相比稍有不足.211 电 子 学 报2015年2畅4 MIC异构系统架构MIC(ManyIntegratedCore),是Intel2011年推出的新一代集成众核协处理器,它通过对传统的微处理器进行向量扩展,然后将多个扩展后的核心整合在一起,来进一步提升计算能力.MIC协处理器的独特之处在于:它不像传统的加速器,它本身具有独立的微操作系统μos,所以更像是一个能被访问、被编程、功能全面的高性能计算节点,在应用程序看来,它就如同一个运行着自身的基于Linux的操作系统(与主操作系统无关)的计算机.图4为MIC异构系统架构[9,10].由以上分析可知,Cell和APU是一种片内的异构系统,而GPU和MIC则是要和主处理器(CPU)配合以对应用进行加速的片间异构系统.根据目前的发展趋势,GPU和MIC这种以加速卡的运行方式更具通用性,同时这种架构的使用成本相对较低.因为采用GPU和MIC加速不需要从物理上对已有的硬件系统进行大的改动,只需要将GPU卡和MIC卡通过PCI-E接口和已有的通用处理器相连,就可以构成异构系统,可以在保留原有硬件投资的基础上,容易的以较低的成本实现原有计算系统向异构系统的扩展,为普通高性能计算用户提供一种经济、可行、实际有效的计算、仿真和验证平台.3 异构系统编程特点 本节针对通用高性能计算领域,以易扩展和有效实用性为基础,重点对目前通用的GPU和MIC两种典型的节点级异构系统从编程特点方面作进一步讨论.3畅1 GPU编程特点在GPU异构系统上最有代表性的编程模型是NVIDIA的CUDA(ComputeUnifiedDeviceArchitecture),也是当今最流行的GPGPU(GeneralPurposeComputingonGraphicsProcessingUnit)语言.与以往GPU编程语言不同的是,CUDA不再面向图形计算,它提供编译器和开发工具,让开发人员用一种类C的编程语言来开发GPG-PU程序,并同时运行于CPU和GPU上[6].CUDA为GPU通用计算提供了统一的编程接口,提供近似高级语言的语法特性,突破了以往GPU编程时必须要深入了解底层硬件和图形处理接口限制,简化了GPU编程难度.但CUDA并不是一种完全透明的语言,它没有封装存储系统的异构性,在进行CUDA程序开发时,程序员还是需要对各种存储器的特点和局限性有清楚的认识,要根据硬件特点将任务进行合理分解,进行具体的线程配置,并在编程时对数据传输、存储器访问及指令流进行优化,从根本上增加了编程难度和程序调试难度,且容易出错.从而影响了GPGPU程序的开发效率,阻碍了GPGPU向更广泛的具体应用领域的普及.3畅2 MIC编程特点MIC架构的优点之一是可运行已有的x86应用程序,而不用将程序完全移植到一个新的编程环境中,可以比较方便的利用协处理器的高计算性能.MIC架构处理器能够支持现有的标准化编程工具,大大方便了开发人员.MIC架构在单个芯片中融合了众多处理核心,这些核心都能够通过使用标准的C、C++和FROTRAN进行编程.MIC卡拥有灵活的编程方式,即可以作为一个协处理器存在,又可以被看作是一个独立的节点.较常用的编程模式主要有以下三种:(1)以CPU为主MIC为辅的编程模式;(2)CPU和MIC对等的编程模式;(3)MIC原生编程模式[11].4 异构系统编程模型和性能优化研究 采用主处理器+协处理器异构架构,可以使异构系统从整体上达到高性能和低功耗的目的,从而为具体的应用提供高效的计算平台.OwensJD等[12]对GPU通用计算相关的硬件及软件、编程模型、编程语言及相应的编译调试环境、性能优化技术及相关的GPGPU应用作了综述.BrodtdorbAR等[5]对GPU硬件架构和传统的优化技术进行了综述.王海峰等[13]从应用的角度对GPU体系架构、编程模型、开发语言、存储模型、通信模型、负载均衡、可靠性、低功耗优化等方面进行了综述,同时对GPU当前的应用领域及进展进行了分析,最后总结了GPGPU研究中存在的问题及面临的挑战.目前针对异构众核系统硬件架构缺乏较好的统一编程模型,没有提供一种有效的完全透明的编程语言,311第 1 期巨 涛:异构众核系统及其编程模型与性能优化技术研究综述现有的编程模型没能较好的封装底层硬件架构的异构性.用户开发异构系统程序的难度较大,同时由于缺乏较好的性能优化机制,异构系统的计算资源得不到充分利用,不能充分发挥异构众核系统高效计算能力.基于以上异构众核系统存在的问题,学术界对异构系统下如何降低编程难度,如何提高编程效率及性能优化方面做了大量的研究工作.4畅1 异构系统编程模型研究现状分析并行编程模型是底层体系结构与上层应用程序之间的桥梁,向上隐藏并行处理器的细节,提供给程序员并行表达的方法;向下充分利用硬件资源、高效正确地实现应用[14].并行编程框架是对某一类问题解决方案的最高抽象形式,它由一套应用程序接口API和系统运行时函数组成.用户需要完成的工作是根据具体的应用问题和该框架的并行处理方式,设置接口函数的参数值,调用相应的接口函数.接口函数根据用户指定的参数值,对操作数据集进行划分,然后调用相应的任务处理函数和系统运行时函数自动完成问题的并行求解.异构系统下同样是按编程模型或编程框架的方式来解决可编程性问题.当前异构系统编程模型主要的一种方法是通过对已有的语言进行扩展,提供一种高级的异构多核编程抽象机制,让用户利用较通用的并行编程语言或更接近高级语言的简单语言编写具体的应用程序,然后通过特定的编译器生成异构系统底层的目标代码.用户在开发应用程序时不用考虑异构系统具体的硬件特点,主要从算法层面考虑应用程序的开发,而具体的任务分配、线程配置、数据传输、存储访问、指令执行的优化工作由编译器来完成,相应的编译器将用户代码自动转换成适合异构系统特点的目标代码,在异构系统上运行.这方面研究大多针对CPU+GPU异构众核架构,具有代表性的工作主要有:LeeS等[15]提出了一种将通用并行编程语言Open-MP编写的标准应用程序转换成GPGPU代码的自动编译和优化框架.该编程框架的主要思路是让用户利用已有的通用并行编程模型来编写基于异构系统的并行程序,而由源到源编译器来完成具体的代码转换、性能优化及代码到具体硬件的映射工作,从而提高异构系统的可编程性.利用编译器来屏蔽异构系统底层的编程和存储访问的实现细节,代价是系统性能受到限制,要进一步提升性能需要额外手动的对编译器产生的底层代码进行调节,所以整个系统的扩展性,编程灵活性,系统性能都会受到影响.文献[16]OpenMPC编程框架是在扩展文献[15]工作的基础上,通过增加指导语句和环境变量及优化策略的方式,实现更细粒度的Open-MP到CUDA的转换及性能优化.HanTD等[17]提出了一种基于指导语句的高级语言hiCUDA,它利用源到源编译技术为用户提供了一种用简单的方式完成一般的应用程序到CUDA程序的移植.该类研究通常只针对特定的异构系统进行编译指导支持,如果底层硬件架构发生变化,就要重新设计编译和指导机制,系统的可扩展性有限.研究能够提供一套标准的指导语句规范,根据异构系统不同的底层架构,使用不同的编译选项进行不同的编译,以适应异构系统底层硬件架构不断发展变化的要求,这是解决系统可扩展性一个重要的研究方向.BaskaranMM等[18]实现一种通用串行C程序到CUDA程序的自动转换系统.该方法与前两种方法相比,对用户来说可编程性更好,是一种比较理想的解决异构系统可编程性的思路,用户直接用以前熟悉的串行编程模型进行程序开发,而由编译器将通用的串行程序直接转换成满足异构系统的并行代码,整个过程中无需用户参与,但这种方法只针对特定的硬件架构,程序的并行性受系统编译和自动并行转换技术的限制,系统的性能和可扩展性受到制约.LindermanMD等[19]提出的Merge框架,为异构多核平台提供了并行编程模型、编译器和运行时支持;DubachC等[20]专门针对GPU的异构系统,设计了一种兼容JAVA的面向异构系统的高级编程语言Lime,这也是一种通过语言扩展的方式来提高异构系统可编程性的策略;LiuW等[21]提出了能够在CPU和加速器之间平衡计算任务,充分利用两类处理器计算能力的异构系统编程模型;GeladoI等[22]提出了一种非对称的分布式共享存储的异构计算编程模型,该编程模型通过轻量级方式实现虚拟的共享存储,从而可以克服对称分布式共享存储的不足.虚拟共享存储是异构计算的一个重要研究方向.以上通过设计编程模型或编程框架来解决异构系统可编程性问题的主要特点是:侧重于如何降低异构系统的编程复杂性,用户在编程时主要从算法层面考虑,不用考虑具体的底层硬件架构特点;具体性能优化的工作由编译器完成,对程序员透明.总体上,提高异构系统的可编程性可以从以下方面进行深入的研究:第一,将原有的通用并行编程模型编写的并行程序通过源到源编译技术转换成满足特定异构系统要求的目标代码;第二,通过扩展现有的通用编程语言,在原有的程序中加入一些指导语句,结合编译技术,实现通用程序到异构系统目标代码的转换;第三,提供一种和异构系统底层硬件架构完全独立的共享虚拟存储的编程模型和语言,结合编译器和相应的运行时来提高异构系统的可编程性,可扩展性及性能;411 电 子 学 报2015年第四,实现完全自动的将通用串行程序转换成满足异构系统要求的目标程序.4畅2 异构系统性能优化研究现状分析由于异构众核系统和传统的多核系统在硬件架构上有很大的差异,在具体应用时,用户要对异构系统计算资源进行显式管理,如果缺乏较好的性能优化机制,将导致异构系统的计算资源得不到充分有效的利用.研究已表明优化和未优化的应用程序性能可能相差数十倍或更大[23~25].RyooS等[23]分析了在GPU异构平台上进行性能优化时所要考虑的优化问题,总结了具体的优化原理,同时对具体的优化策略进行了测试验证,为异构系统性能优化提供了参考.目前针对异构系统性能优化主要通过设计编译器、提供优化工具及函数库、设计运行时系统三种方式实现:(1)通过设计编译器进行性能优化BaskaranMM等[24]设计了一个对具有规则循环嵌套的GPGPU程序进行优化的编译器框架,利用具有抽象数据依赖分析和程序转换特点的多面体模型编译器对全局和共享存储访问进行优化,通过实验探测的方法确定任务分割及循环展开参数,使程序在具体执行时线程数和相应的计算资源能够合理的匹配,从而保证异构系统的计算资源得到有效的利用,提高系统的性能.JangB等[25]针对异构系统存储子系统具有的异构性和分布式的特点,建立能反映循环嵌套中存储访问模式的数学模型,使用数学的方法对程序的存储访问特点进行建模,具有较强的抽象性和通用性.Sun-daramN等[26]提出了一个在GPU上运行专用应用程序的软件框架,该框架主要考虑了GPU编程中的两个关键问题,一是所要处理应用程序数据远远超过GPU存储容量限制的程序运行问题;二是最小化CPU和GPU之间数据传输问题,这为异构系统下,优化和处理大规模专用应用程序提供了借鉴.HeB等[27]在GPU异构平台上实现了MapReduce框架.LiuY等[28]通过探测程序输入参数对GPU程序优化的影响,提出了一个基于编译器的自适应优化框架G-ADAPT.以上通过设计编译器的方法对异构系统进行性能优化,主要使用静态的方法,结合一些抽象的数学变换来抽取出程序中的并行部分,分析各并行部分的依赖关系,从任务划分、存储访问、数据传输、负载均衡和向量化等方面进行优化.但这些优化大多只针对具有规则并行特征的应用程序,或对某一类专用的应用程序进行优化,整个优化的通用性有限,要使通用应用程序在异构系统上获得理想的性能,目前仍然需要相应的手动优化.(2)通过优化工具和函数库进行性能优化通过提供优化工具和函数库的方式帮助程序员对编写好的满足具体异构系统要求的初始并行应用程序进行优化.程序员在编写具体应用程序时不用过多的考虑底层硬件特点和具体的优化,只要编写出基本的满足异构系统的代码,利用所提供的优化工具对源程序进行检测和分析,找出程序中影响性能的瓶颈部分,然后调用相应的函数库从任务分解、线程配置、存储访问和指令执行方面按特定的策略进行优化,从而充分利用异构系统的计算资源,提高应用程序的计算性能.同时针对具体的异构系统,将一些科学计算中常用的典型数据密集型应用经优化和并行化后封装成完整的核心函数库,用户在开发具体程序时直接通过API调用对应的函数库就可以充分利用异构处理器来提升整个应用程序的计算性能.如NVIDIA的CUBLAS数学库[6]和IntelMICMKL核心函数库[11]等.LeeJ等[29]提出了一种多线程感知的预取机制来优化GPGPU性能.YYang等[30]提出了一种GPGPU新的优化编译器框架.同时针对GPU异构系统,为了充分挖掘系统的处理能力,最大的发挥主处理器和协处理器的计算性能,文献[7]从CPU和GPU如何更好的协作,文献[31]从如何通过共享存储复用技术来提高可同时运行在GPU上的线程数方面对系统的整体性能优化进行了研究.文献[32]提出了一种面向GPU通信与计算重叠(overlap)的数据划分方法.文献[33]针对将应用移植到CPU-GPU异构并行系统上时优化策略各自分散、没有一个全局优化策略的问题,提出了一种基于剖分的优化策略库、剖分工具库和策略配置模块组成全局性能优化方法,通过三个模块的相互配合以渐近的方式完成应用的全局优化过程.采用优化工具和函数库的优化机制大多数只侧重某一方面的性能优化问题,或针对某种具体应用进行优化,多数情况是用手工编码的方法实现优化,如何将各种优化技术整合,实现动态自适应优化,从整体上提高计算性能仍存在一定的困难.(3)利用运行时支持技术实现性能优化通过为异构多核平台提供运行时支持实现应用程序的自动优化和软件到硬件的映射,达到降低异构多核系统编程难度、提高性能的目的.WangPH等[34]提出了一种将异构加速器表示成基于ISA的MIMD应用级计算资源的体系架构EXOCHI;LukCK等[35]提出了一种自动的将计算任务映射到异构多核处理器运算单元上的自适应映射(Adaptivemap-ping)技术;JablinTB等[36]提出了一种新的完全自动的CPU-GPU通信运行时管理系统.以上针对异构多核架构,从如何提高异构系统的通用性,如何降低编程难度及性能优化方面所做的工作仍然要依赖于底层具体的硬件架构和对应的软件支511第 1 期巨 涛:异构众核系统及其编程模型与性能优化技术研究综述持,如果底层硬件架构一旦发生变化,就要根据具体硬件架构特点重新设计整个编译及运行时系统、性能优化库和工具.所以系统的可扩展性和软件可移植性不能较好的适应新型异构系统的快速发展趋势.4畅3 进一步的研究方向由于目前缺乏一个标准化编程环境来统管异构系统内呈多样化发展态势的各种资源,异构系统的发展和普及受到了限制.在提高异构系统的通用性方面,OpenCL创造了一个独立于硬件的软件开发环境[37],它支持不同层次的并行,并能高效映射到由CPU、GPU、FPGA和其他潜在的未来设备组成的单一或多设备的同构或异构系统.但与CUDA类似,OpenCL提供了一种底层语言抽象层接口,使用者需要对整个设备的硬件架构有相当的了解,用户编程难度依然很大,业界仍需要一种能够有效支持跨平台且低学习门槛的统一编程规范的出现.OpenACC是最新出现的一种跨平台基于指令的隐式的编程模式[38],致力于为不同的异构硬件平台提供统一的编程环境.与OpenCL相比,OpenACC保持了良好的跨平台性并且拥有更高层次的抽象.目前已经有多家厂商提供设备和编译器支持[39~41].通过以上分析可知,为了适应快速发展的异构系统硬件架构的要求,通过设计与异构系统底层硬件架构和对应的支持软件完全独立的编程框架来解决异构系统的可编程性、可扩展性和软件可移植性问题是一种发展趋势.该框架下,用户只从程序算法层面进行并行程序开发,而不用考虑具体异构系统底层硬件特点.编程框架会根据应用程序特点将程序转换成通用的中间代码,然后再由相应的运行时系统负责将中间代码映射到具体的异构系统上运行.而运行时系统在实现具体映射时,根据在操作系统中设置的系统信息感知模块获取必要的硬件信息来完成任务到硬件上的映射执行.当底层硬件架构发生变化时,对整个编程框架来说,不用重新设计运行时系统和前端的通用程序到中间代码的转换部分,只根据具体的硬件架构特性改变或增加相应的运行时库,就可以完成软件到新的异构系统的移植,保证整个编程框架具有较好的可扩展性,以适应不同的异构系统.5 GPU和MIC两种异构系统性能测试 测试对比两种异构系统CPU+GPU和CPU+MIC性能差异,分析引起性能差异的原因,得出两种异构系统处理不同类型应用的特点,指出两种异构系统各自擅长的应用,从而为用户选择具体的异构计算平台提供参考.5畅1 测试环境及测试程序测试平台分别采用了实验室配置的浪潮TS10K集群中的两个独立的MIC计算节点和GPU计算节点.两个计算节点配置如下:MIC节点有两块XeonPhi7110PMIC卡.GPU节点有两块Nvidia的kepler架构的k20mGPU卡.MIC节点和GPU节点都配备了两颗E5-2670CPU,主存大小64G,CPU主存和加速卡之间采用通道带宽为x16的PCI-E总线进行数据传输.操作系统均为RedHatLinux5企业版,MIC节点安装Intelparallel_studio_xe_2013_update3_intel64软件开发环境,GPU节点安装了CUDASDK5.0软件开发包.所采用的测试程序及其特点如表1所示.表1 测试程序特点及其在不同平台上的运行时间(时间:秒)测试程序CPUCPU+GPUCPU+MIC主要特征处理方式应用领域SPGEMM[43,44]20.63744.81788.0779计算受限,规则应用数据并行稀疏线性代数MonteCarlo[45]14.2030.939920.4416计算受限,规则应用任务并行物理模拟,金融计算Histogram[44]44.67234.926915.3257带宽受限,非规则应用数据并行图像处理FFT[46]129.3852.629.47带宽受限,规则应用任务并行信号处理N-body[47]23.3341.04160.4672通信受限,非规则应用任务并行物理模拟K-means[48]16.25883.65767.8793通信受限,非规则应用数据并行数据挖掘,稠密线性代数5畅2 测试结果及分析从表1、图5和图6的测试结果可以看出,SPGEMM、Histogram和K-means三类应用在GPU异构系统上的计算性能优于MIC系统,而MonteCarlo、FFT和N-body三类应用在MIC异构系统上表现出了较好的计算性能.这是因为SPGEMM、Histogram和K-means属于细粒度高密度的数据并行类应用,而GPU是以大量的线程实现面向高吞吐量的数据并行计算,擅长处理计算密度高、逻辑分支简单的大规模数据并行任务,所以以上三种应用在GPU上表现出了较好的性能.其它三类应用属于粗粒度任务并行类应用,该类应用是对同一批数据反复进行大量的运算,在MIC异构系统上运行则能发挥出MIC处理粗粒度并行任务的优势,获得相对较好的计算性能.总体来说,GPU适合处理细粒度大规模的数据并行型的应用,这类应用属于SIMD运算模式,所有运算核心都执行同一个指令,只是作用在不同611 电 子 学 报2015年。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程综述课程名称在系统编程技术任课教师班级10自动化(2)班姓名学号日期2013/5/25目录前言 (3)1 EDA技术基本概念 (3)2 EDA技术发展历程 (3)3 EDA技术的优势 (4)4 EDA技术的现状 (6)5 EDA的发展趋势 (7)总结 (7)参考文献 (8)在系统编程技术综述前言本文是在学习了《在系统编程技术》这门课程和完成上机实验的基础上阐述个人对这门课程的认识。
主要内容涉及的EDA技术的基本概念、EDA技术的发展历程、与传统电子设计方法相比不可替代的优势、发展历程及未来的发展趋势、使用的描述语言VHDL和VHDL的设计流程。
1 EDA技术基本概念EDA(Electronic Design Automation即电子设计自动化)技术是在系统编程技术的核心,它依赖与功能强大的计算机,在EDA工具软件平台,对以硬件描述语言HDL(Hardware Description language)为系统逻辑描述手段完成的设计文件,自动地完成逻辑编译、逻辑简化、逻辑分割、逻辑综合、结构综合(布局布线),以及逻辑优化和仿真测试,直至实现既定的电子线路功能。
EDA技术在硬件实现方面融合了大规模集成电路制造技术、IC版图设计技术、ASIC测试和封装技术、FPGA(Field Programmable Gate Array)/CPLD(Complex Programmable Device)编程下载技术、自动测试技术等;在计算机辅助工程方面融合了计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)、计算机辅助工程(CAE)技术以及多种计算机语言的设计概念;而在现代电子学方面则容纳了更多的内容,入电子线路设计理论、数字信号处理技术、数字系统建模和优化技术及给予微波技术的长线技术理论等。
因此,EDA技术为现代电子理论和设计的表达与实现提供了可能性。
2 EDA技术发展历程正因为EDA技术丰富的内容以及与电子技术各学科领域的相关性,其发展的历程同大规模集成电路设计技术、计算机辅助工程、可编程逻辑器件,以及电子设计技术和工艺的发展是同步的。
就过去近30年电子技术的发展历程,大致可将EDA技术的发展分为三个阶段。
第一阶段:20世纪70年代在集成电路制作方面MOS工艺得到了广泛的应用。
可编程逻辑技术及其器件已经问世,计算机作为一种运算工具已在科学领域得到了广泛的应用。
而在后期,CAD的概念已见雏形。
这一阶段人们开始利用计算机取代手工劳动,辅助进行集成电路版图编辑、PCB布局布线等工作。
第二阶段:20世纪80年代,集成电路设计进入了CMOS(互补场效应管)时代。
复杂可编程逻辑器件已进入商业应用,相应的伏虎软件也已投入使用。
而在80年代末,出现了FPGA,CAE和CAD技术的应用更为广泛,它们在PCB设计方面的原理图输入、自动布局布线即PCB分析,以及逻辑设计、逻辑仿真、布尔方程综合和花间等方面担任了重要的角色,特别是各种硬件描述语言的出现及其在应用和标准化方面的重大进步,为电子设计自动化必须解决的电路建模、标准文档计仿真测试奠定了基础。
第三阶段:进入20世纪90年代,随着硬件描述语言的标准化得到进一步的确立,计算机辅助工程、辅助分析和辅助设计在电子设计领域获得了更加广泛的应用,与此同时电子技术在通信、计算机及家电产品生产中的市场需求和技术需求,极大地推动了全新的电子设计自动化技术的应用和发展。
特别是集成电路设计工艺步入了超神亚微米阶段,近千万门以上的大规模可编程逻辑器件的陆续面世,以及基于计算机技术的的面向用户的低成本大规模ASIC设计技术的应用,促进了EDA技术的形成。
更为重要的是,各EDA公司致力于推出兼容各种硬件实现方案和支持标准硬件描述语言的EDA工具软件的研究,都有效地将EDA 技术推向成熟。
3 EDA技术的优势传统的数字电子系统或IC设计中,手工设计占了较大的比例。
手工设计一般先按电子系统的具体功能要求进行功能划分,然后对每个子模块画出真值表,用卡诺图进行手工逻辑化简,写出布尔表达式,画出相应的逻辑线路图在据此选择元器件,设计电路板,最后进行实测和调试。
由此可见手工设计方法的缺点:(1)复杂电路的设计、调试十分困难。
(2)由于无法进行硬件系统仿真,如果某一过程存在错误,查找马赫修改十分不便。
(3)设计过程中产生大量文档,不易管理。
(4)对于IC设计而言,设计实现过程与具体生产工艺直接相关因此可移植性差。
(5)只有在设计出样机或生产出芯片后才能进行实测。
相比之下,EDA技术有很大不同,它的优点是:(1)用HDL对数字系统进行抽象的行为及功能描述以及具体的内部线路结构描述,从而可以在电子设计的各个阶段、各个层次进行计算机模拟验证,保证设计过程的正确性,可以大大降低设计成本,缩短设计周期。
(2)EDA工具之所以能够完成各种自动设计过程,关键是有各类库的支持。
入逻辑仿真时的模拟库、逻辑综合时的综合库、版图综合时的版图库、测试综合时的测试库,等等。
这些库都是EDA公司欲半导体生产商紧密合作、共同开发的。
(3)某些HDL也是文档型的语言(如VHDL),极大的简化了设计文档的管理。
(4)EDA技术中最为瞩目的功能,即最具现代电子设计技术特征的功能是日益强大的逻辑设计仿真测试技术。
EDA仿真测试技术只需通过计算机,就能对所设计的电子系统从各种不同层次的系统性能特点完成一系列准确的测试与仿真操作,在完成实际系统的安装后还能对系统上的目标器件进行所谓边界扫描测试。
这一切都极大地提高了大规模系统电子设计的自动化程度。
(5)无论传统的应用电子系统设计得如何完美,使用了多么先进的功能器件,都掩盖不了一个无情的事实,即该系统对于设计者来说,没有任何自主知识产权可言,因为系统中的关键性的期间往往并非出自设计者之手,这将导致该系统在许多情况下的应用受到限制。
基于EDA技术的设计则不同,由于用HDL表达的成功的专用功能设计在实现目标方面有很大的可选性,它既可以用不同来源的通用FPGA/CPLD实现也可以直接以ASIC来实现,设计者拥有完全的自主权,再无受制于人之虞。
(6)传统的电子设计方法至今没有任何标准规范加以约束,因此,设计效率低,系统性能差,开发成本高市场竞争力小。
而EDA技术的设计语言是标准化的不会由于设计对象的不同而变化;它的开发工具是规范化的EDA软件平台支持任何标准化的设计语言;它的设计成果是通用的,IP核具有规范的接口协议。
良好可移植性和可测试后性,为系统开发提供了可靠的保证。
(7)从电子设计方法学来看,EDA技术最大的优势就是能将所有设计环节纳入统一的自顶而下的设计方案中。
(8)EDA不但在整个设计流程上充分利用计算机的自动设计能力,在各个设计层次上利用计算机完成不同内容的仿真模拟,而且在系统板设计结束后仍可利用计算机对硬件系统进行完整的测试。
而传统的设计方法则不能测试。
五、EDA技术的现状4 EDA技术的现状电子设计技术经历了从应用分离元件,SS1、MS1到LS1、VS1的发展过程,其间有许多变革和创新。
直到微控制器(MCU)的广泛应用,克服了纯数字电路系统许多不可逾越的困难,它只要配以一定程序(通常固化于EPROM)和一些附属电路,原则上可以实现任意复杂的逻辑功能,它使得电子系统的智能化水平在深度和广度上都产生了质的飞跃,使应用SS1通用数字电路芯片构成电路系统,成为历史。
随着社会经济发展的延伸,各类新型电子产品的开发提出了更高的要求,FPGA/CPLD器件在EDA基础上的应用,从某种意义上说,新的电子系统运转的物理机制又将回到原来的纯数字电路结构,但这是一次更高层次的循环,它在更高层次上容纳了过去数字电路技术的优秀部分,对MCU系统则是一种扬弃,但在电子设计的技术操作和系统构成的整体上却发生了质的飞跃,如果说MCU在逻辑的实现上是无限的话,那么高速发展的FPGA/CPLD不但包括了MCU这一特点,并兼有串、并行工作方式和高速、高可靠性以及宽口径实用性等诸多方面的特点。
特别是软/硬IP芯核产业的迅猛发展,嵌入式通用与CPLD和FPGA器件的出现,片上系统已近在咫尺。
5 EDA的发展趋势随着市场需求的增长,集成工艺水平及计算机自动设计技术的不断提高,促进单片系统,或称系统集成芯片成为IC设计的发展方向。
这一发展趋势表现在以下几个方面:(1)超大规模集成电路的集成度和工艺水平不断提高,深亚微米(Deep-Submicron) 工艺,如0.13um、90nm已经走向成熟,在一个芯片上完成一个系统级的集成已成为可能。
(2)由于工艺线宽的不断减小半导体材料上的许多寄生效应不能简单的被忽略。
这就对EDA工具提出了更高的要求,同时也使IC生产线的投资更为巨大。
可编程逻辑器件开始进入传统的ASIC市场。
(3)市场对电子产品提出了更高的要求,如必须降低电子系统的成本、减小系统的体积等,从而对系统的集成度不断提出更高的要求。
同时设计的速度也成为一个产品是否成功的关键因素,促使EDA工具和IP核应用更为广泛。
(4)高性能的EDA工具得到长足的发展,其自动化和智能化程度不断提高,为嵌入式系统设计提供了功能强大的开发环境。
(5)计算机硬件平台性能大幅度提供,为复杂的SoC设计提供了物理基础。
总结通过此次EDA课程综述我对EDA技术的历史,发展,及其未来趋势有了个很好的认识。
通过这一个学期对EDA技术的学习,我觉得它是一门很实用的学科,基于VHDL语言的EDA设计让我们在电子线路创新方面有了更加广阔的发展领域。
EDA技术已经不是某一学科的分支,或某种新的技能技术,它应该是一门综合学科。
它融合多科学于一体,又渗透于各学科中。
它打破了软件和硬件之间的壁垒,使计算机的软件技术与硬件实现,设计效率和产品性能合二为一,他代表了电子设计技术和应用技术的发展方向。
我希望在以后的学习中能够再次深入对EDA技术的学习,熟悉有关EDA技术的编程语言和原理图设计方法,锻炼自己的动手能力,发挥这方面的创新能力,并为以后的工作奠定基础。
参考文献[1]王小军.《VHDL简明教程》北京.清华大学出版社;[2]潘松.黄继业.EDA技术实用教程(第三版).北京.科学出版社;[3]谭会生.张昌凡.EDA 技术及应用[M ]. 西安: 西安电子科技大学出版社, 2001;。