下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、调节多核处理器硬件适应软件设计方法典型的系统设计人员在硬件平台上举行编程,他们最关注的一点就是硬件平台的稳定性。假如硬件没有设置好,会带来重新编写代码的棘手。但是一个彻低设置好的稳定的硬件平台还是会对其上运行的程序有一系列的限制。这些限制 - 无论是设计结果,还是一个彻低的缺陷 - 都会造成在编码时需要径直处理甚至重新返工的状况,给设计实现带来棘手,并且耗费了大量的时光。通过将平台和一个细心设计的多核办法结合在一起,开发人员就能以下列这种方式实现高性能分组处理应用:软件工程师能够对计算平台的结构有所控制,从而大大缩短编程时光,同时降低延期交付风险。硬件设计流程的主要工作就是定义一块板。像存储器
2、类型、协议和i/o这样的基本组件已被预先定义。假如只用法一个固定的处理器,那它也是预先定义好的。但是,单个处理器无法运行需要吉比特性能的算法(例如分组处理算法),此时就需要多个处理器协同工作。构建一个处理构造块的最佳办法取决于所运行的软件。用法fpga来举行处理,就能使你在对代码需求有了进一步了解后,再对精确的实现方式做出明确的决策。全新的tejia fp平台在 virtextm - 4 fpga上提供了一种办法和多核基础设施,使开发人员在完成代码编写后,对多核架构举行精确的配置。当软件工程师设计硬件时硬件和软件设计是两种本质上不同的工作。无论硬件设计语言多么像一个软件,它举行的仍然是硬件设计
3、。硬件语言对结构举行定义,并且设计流程终于要举行结构的实体化。但是,软件工程师正越来越多地用法c编程技术来设计系统功能;现有的工具支持用法软件或硬件办法来设计系统功能。软件实现的办法更偏向于过程导向。它考虑的是“如何去做”而不是“构建什么”的问题,由于从传统观点来看,已经不需要再构建什么了 - 硬件都已经被构建好了。在真正基于软件的设计办法中,关键的功能不是被构建到一种结构中去,而是在一个已经构建好的系统中被结构执行的。灵便性是基于软件的实现办法的优势:在系统出厂后仍能快捷地对其举行转变。虽然fpga也能现场编程,但转变软件设计要比构建硬件快捷地多。因为硬件和软件设计存在着差异,因此硬件和软件
4、的设计者所考虑的问题是不同的。不行能只通过转变编程语言的语法,就能改变成软件工程师。反之,软件工程师也不行能由于硬件设计中需要软件的参加,就能改变成硬件工程师。因此,不能轻率地就让软件工程师加入处处理架构的设计中来。此外,硬件工程师、软件工程师或项目经理都不会同意将一个基于硬件办法的设计交给一位软件工程师去完成。软件工程师做出关于硬件的打算时所用法的办法,极有可能得到认识类似编程语言的另一位软件工程师的认同。1所示,并行流水线是多核分组处理引擎中处理架构的关键结构。这一引擎由一个处理器阵列加上可能存在的硬件加速器构成。回答了下面这些问题,就等于完成了一个设计流程:需要多少个处理器?应当如何支配
5、这些处理器?每个处理器需要处理多少代码和存储多少本地数据?代码的哪些部分需要硬件加速让我们来逐一回答这些问题,从而为软件工程师“组装”出一套设计办法。处理器的数量和配置所需处理器的数量可以通过对周期预算和执行代码所需的周期数举行容易的数学计算得出。当你要在规定的时光内完成工作时,周期预算就成为一个关键的参数。例如举行分组处理时,数据位置举行划分。这样,就能够围绕划分的状况来举行硬件设计,而不用按照硬件来举行划分。软件工程师如何举行设计是一个关键问题。teja中集成了一组api和一个处理工具,可以用ansi c来定义硬件平台。此工具可执行程序,创建处理平台的定义,这些定义能够被xilinx嵌入式
6、工具举行处理。api组的内容非常丰盛,并且能够在很靠底的硬件层次上举行控制,但大多数软件工程师不希翼用法它们。因此,teja中还用法参数化的方式加入了一个“典型的”流水线定义的办法。要实现上述示例中的流水线,只需要在配置头文件中修改两个容易的define陈述式。下面的陈述式定义了一个两级的流水线,在第一级用法了4个引擎,在其次级用法了2个引擎:图1 - 并行的流水线,每个引擎由一个microblaze处理器、专用存储器和可选的减负器构成。包不停地到来,而你在下一个数据包到来之前,惟独那么多周期来完成你的工作。假如你的代码需要更长的时光来执行,那么就需要添加更多的处理器。例如,假如周期预算是10
7、0个周期,而代码执行需要520个周期,那么你就需要6个处理器(520除以100,然后进位到整数)。你可以对处理器数量举行调节,但必需满足预算的要求。用法teja工具时,可以通过分析来确定周期数。下一个问题是如何支配这些处理器。处理这一问题最容易的方法就是确定你是否需要划分代码,来创建一个流水线。流水线用法较少的硬件资源,但会增强等待时光。假如你需要对代码举行划分,最好挑选在一个显然的位置(自然和直观的位置)举行。而没有须要计算出周期中点精确的位置。图1 - 并行的流水线,每个引擎由一个microblaze处理器、专用存储器和可选的减负器构成。假设你要用6个处理器构成一个两级流水线。那么你现在就
8、需要计算出每一级所需的处理器的数量;先通过分析来确定每个划分的周期数,如后再用它去除以周期预算,就可以得到每一级所需的处理器的数量。因此,假如第一个划分需要380个周期,则它需要4个处理器;这样其次级就需要140个周期,从而需要两个处理器。(两个划分所需的周期数之和事实上不一定正巧等于未划分的程序所需的周期数,但会十分临近,因此在这里可以近似看作相等。)因此,这个两级的流水线的第一级需要4个处理器,其次级需要2个处理器。假如有足够的规律资源,用法xilinx microblazetm软核,就能够实体化任何这样的流水线。相比较而言,在一个固定的流水线结构中,每一级的处理器数量都已经预先确定。因此
9、就只能强制用法一种特地的划分办法,实现这一划分就会需要相当长的时光。相反地,假如每一级用法的处理器数量不同,流水线就可以定制,并且可以是不规章的。因此能够从任何位置举行划分。这样,就能够围绕划分的状况来举行硬件设计,而不用按照硬件来举行划分。软件工程师如何举行设计是一个关键问题。teja中集成了一组api和一个处理工具,可以用ansi c来定义硬件平台。此工具可执行程序,创建处理平台的定义,这些定义能够被xilinx嵌入式工具举行处理。api组的内容非常丰盛,并且能够在很靠底的硬件层次上举行控制,但大多数软件工程师不希翼用法它们。因此,teja中还用法参数化的方式加入了一个“典型的”流水线定义
10、的办法。要实现上述示例中的流水线,只需要在配置头文件中修改两个容易的define陈述式。下面的陈述式定义了一个两级的流水线,在第一级用法了4个引擎,在其次级用法了2个引擎:define pipeline_length 2define pipeline_config 4,2;由上述陈述式和预设的配置程序,tejacc程序就能构建出流水线。固然,无论因为什么缘由使得流水线的配置需要发生转变时,只要用法与上面相像的办法举行编辑即可。存储器第三个问题跟所需的存储器数量有关。在一个典型的系统中,所能存储的代码和数据的数量是固定的。假如你的设计没有满足这一要求,就需要做大量的工作来将多出的内容压缩到存储空
11、间中。但是在用法fpga时,只要所需存储器的数量在芯片所能提供的范围之内,就能够根据实际需要为每个处理器分配存储空间。在更典型的状况下,全部的存储空间的大小都相同(因为每个块的最小容量为2k,这就限制了举行微调的程度)。图2 - 配置并行流水线的流程代码编译时提供所需存储器的大小,并且可以用法下面的陈述式来编辑配置头文件,在这个示例中为代码和数据存储分配的存储空间均为8kb:define cpe_code_mem_size_kb 8define cpe_data_mem_size_kb 8用法减负器来加快处理速度第四个问题和创建硬件加速器有关。可能有一部分程序会占用太多的周期。要削减周期就需要
12、更多的处理器,而用法硬件加速器就能削减处理器的数量。只要硬件加速器比其所替代的处理器占用更少的门,就能够削减囫囵硬件实现的面积。teja有一项功能就是用来从代码中挺直创建这样的加速器或减负器。通过对程序举行注释,此功能就可创建:实现代码的硬件规律通过系统接口在处理器基础设施中添加加速器调用原型替换程序中最初的代码在将减负器集成于系统之前,先用法测试台对其举行验证。一旦创建了减负器,周期数就会削减,因此你需要重新支配处理器。但因为重新定义流水线结构的操作非常便利,因此这是一项很容易的任务。一个容易挺直的办法将前面所述的步骤组合在一起,就产生了图2中所示的设计流程。你可以先定义减负器(对于显然需要
13、减负器的任务),或在配置好流水线之后再定义减负器(假如现有的代码用法了太多的处理器)。软件工程师所能控制的是一些在他们看来自然和容易的参数,这里用法自然的软件语言(ansi c)来表达这些参数。对硬件举行实体化的全部详情都由tejacc程序来处理,它会为xilinx嵌入式开发系统(edk)创建一个项目。剩下的编译/综合/布局/布线和产生比特流以及镜像代码的工作一致由edk来完成。在这种方式下,电路板可以由硬件工程师设计,但通过用法fpga,硬件工程师能够将终于的实现中硬件配置的关键部分,留给软件设计者去完成。这一办法还支持在设计即将完成时对电路板举行改动(例如,因为性能缘由要对存储器的类型和容量举行改动)。因为teja工具能创建fpga的硬件定义,其中包括存储器控制器和其他外设,因此设计人员可以轻松地调整电路板。终于的结果是,因为硬件实现可以适应软件的变幻,因此软件设计者不再需要花费大量的时光来围绕一个固
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 长春市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)有答案详解
- 佛山市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)有答案详解
- 2026年南平市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(夺分金卷)
- 天津市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(新)
- 2026年延庆县农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及完整答案详解一套
- 眉山市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)及答案详解(考点梳理)
- 吴忠市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(轻巧夺冠)
- 吐鲁番地区农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)含答案详解(完整版)
- 甘肃省农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解
- 盘锦市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)带答案详解
- 学生外出安全协议书模板学生外出安全协议书
- 食品安全抽检监测技能大比武理论考试题及答案
- 人教版九年级上册数学期中考试试卷有答案
- 初中班会 10月31日世界勤俭日宣传介绍主题班会 课件
- 锅炉使用单位安全员题库
- 五年级上册体育与健康教案
- 医院培训课件:《中医拔罐类技术相关性感染预防与控制指南》
- FZT 73012-2017 文胸行业标准
- 新概念第二册课文和单词
- 妊娠期和产后抑郁症:诊断和治疗方法
- 康复科出院指导及健康宣教
评论
0/150
提交评论