调节多核处理器硬件适应软件设计方法

发布者:脑力驿站最新更新时间:2012-03-29 来源: 61ic关键字:多核处理器  硬件适应  FPGA 手机看文章 扫描二维码
随时随地手机看文章

  典型的嵌入式系统设计人员在硬件平台上进行编程,他们最关注的一点就是硬件平台的稳定性。如果硬件没有设置好,会带来重新编写代码的麻烦。但是一个完全设置好的稳定的硬件平台还是会对其上运行的程序有一系列的限制。这些限制 - 无论是设计结果,还是一个完全的缺陷 - 都会造成在编码时需要迂回处理甚至重新返工的情况,给设计实现带来麻烦,并且耗费了大量的时间。

  通过将FPGA平台和一个精心设计的多核方法结合在一起,开发人员就能以下列这种方式实现高性能分组处理应用:软件工程师能够对计算平台的结构有所控制,从而大大缩短编程时间,同时降低延期交付风险。

  硬件设计流程的主要工作就是定义一块电路板。像存储器类型、总线协议和I/O这样的基本组件已被预先定义。

  如果只使用一个固定的处理器,那它也是预先定义好的。但是,单个处理器无法运行需要吉比特性能的算法(例如分组处理算法),此时就需要多个处理器协同工作。

  构建一个处理构造块的最佳方法取决于所运行的软件。使用FPGA来进行处理,就能使你在对代码需求有了进一步了解后,再对精确的实现方式做出明确的决策。全新的Tejia FP平台在Xilin

x® VirtexTM - 4 FPGA上提供了一种方法和多核基础设施,使开发人员在完成代码编写后,对多核架构进行精确的配置。

  当软件工程师设计硬件时

  硬件和软件设计是两种本质上不同的工作。无论硬件设计语言多么像一个软件,它进行的仍然是硬件设计。硬件语言对结构进行定义,并且设计流程最终要进行结构的实体化。但是,软件工程师正越来越多地使用C编程技术来设计系统功能;现有的工具支持使用软件或硬件方法来设计系统功能。

  软件实现的方法更偏向于过程导向。它考虑的是“如何去做”而不是“构建什么”的问题,因为从传统观点来看,已经不需要再构建什么了 - 硬件都已经被构建好了。在真正基于软件的设计方法中,关键的功能不是被构建到一种结构中去,而是在一个已经构建好的系统中被结构执行的。灵活性是基于软件的实现方法的优势:在系统出厂后仍能快捷地对其进行改变。虽然FPGA也能现场编程,但改变软件设计要比构建硬件快捷地多。

  由于硬件和软件设计存在着差异,因此硬件和软件的设计者所考虑的问题是不同的。硬件工程师不可能只通过改变编程语言的语法,就能转变成软件工程师。反之,软件工程师也不可能因为硬件设计中需要软件的参与,就能转变成硬件工程师。因此,不能轻率地就让软件工程师加入到处理架构的设计中来。

  此外,硬件工程师、软件工程师或项目经理都不会同意将一个基于硬件方法的设计交给一位软件工程师去完成。软件工程师做出关于硬件的决定时所使用的方法,极有可能得到熟悉类似编程语言的另一位软件工程师的认同。

  如图1所示,并行流水线是多核分组处理引擎中处理架构的关键结构。这一引擎由一个处理器阵列加上可能存在的硬件加速器构成。回答了下面这些问题,就等于完成了一个设计流程:

  •   需要多少个处理器?
  •   应该如何安排这些处理器?
  •   每个处理器需要处理多少代码和存储多少本地数据?
  •   代码的哪些部分需要硬件加速

  让我们来逐一回答这些问题,从而为软件工程师“组装”出一套设计方法。

  处理器的数量和配置

  所需处理器的数量可以通过对周期预算和执行代码所需的周期数进行简单的数学计算得出。当你要在规定的时间内完成工作时,周期预算就成为一个关键的参数。例如进行分组处理时,数据位置进行划分。这样,就能够围绕划分的情况来进行硬件设计,而不用根据硬件来进行划分。软件工程师如何进行设计是一个关键问题。Teja中集成了一组API和一个处理工具,可以用ANSI C来定义硬件平台。此工具可执行程序,创建处理平台的定义,这些定义能够被Xilinx嵌入式工具进行处理。API组的内容十分丰富,并且能够在很靠底的硬件层次上进行控制,但大多数软件工程师不希望使用它们。因此,Teja中还使用参数化的方式加入了一个“典型的”流水线定义的方法。要实现上述示例中的流水线,只需要在配置头文件中修改两个简单的#define陈述式。

  下面的陈述式定义了一个两级的流水线,在第一级使用了4个引擎,在第二级使用了2个引擎:图1 - 并行的流水线,每个引擎由一个MicroBlaze处理器、专用存储器和可选的减负器构成。包不停地到来,而你在下一个数据包到来之前,只有那么多周期来完成你的工作。如果你的代码需要更长的时间来执行,那么就需要添加更多的处理器。例如,如果周期预算是100个周期,而代码执行需要520个周期,那么你就需要6个处理器(520除以100,然后进位到整数)。你可以对处理器数量进行调整,但必须满足预算的要求。使用Teja工具时,可以通过分析来确定周期数。

    下一个问题是如何安排这些处理器。处理这一问题最简单的办法就是确定你是否需要划分代码,来创建一个流水线。流水线使用较少的硬件资源,但会增加等待时间。如果你需要对代码进行划分,最好选择在一个明显的位置(自然和直观的位置)进行。而没有必要计算出周期中点精确的位置。

并行的流水线

图1 - 并行的流水线,每个引擎由一个MicroBlaze处理器、专用存储器和可选的减负器构成。[page]

  假设你要用6个处理器构成一个两级流水线。那么你现在就需要计算出每一级所需的处理器的数量;先通过分析来确定每个划分的周期数,如后再用它去除以周期预算,就可以得到每一级所需的处理器的数量。。因此,如果第一个划分需要380个周期,则它需要4个处理器;这样第二级就需要140个周期,从而需要两个处理器。(两个划分所需的周期数之和实际上不一定正好等于未划分的程序所需的周期数,但会非常接近,因此在这里可以近似看作相等。)因此,这个两级的流水线的第一级需要4个处理器,第二级需要2个处理器。如果有足够的逻辑资源,使用Xilinx MicroBlazeTM软核,就能够实体化任何这样的流水线。

  相比较而言,在一个固定的流水线结构中,每一级的处理器数量都已经

预先确定。因此就只能强制使用一种专门的划分方法,实现这一划分就会需要相当长的时间。相反地,如果每一级使用的处理器数量不同,流水线就可以定制,并且可以是不规则的。因此能够从任何位置进行划分。这样,就能够围绕划分的情况来进行硬件设计,而不用根据硬件来进行划分。

  软件工程师如何进行设计是一个关键问题。Teja中集成了一组API和一个处理工具,可以用ANSI C来定义硬件平台。此工具可执行程序,创建处理平台的定义,这些定义能够被Xilinx嵌入式工具进行处理。API组的内容十分丰富,并且能够在很靠底的硬件层次上进行控制,但大多数软件工程师不希望使用它们。因此,Teja中还使用参数化的方式加入了一个“典型的”流水线定义的方法。要实现上述示例中的流水线,只需要在配置头文件中修改两个简单的#define陈述式。

  下面的陈述式定义了一个两级的流水线,在第一级使用了4个引擎,在第二级使用了2个引擎:

  #define PIPELINE_LENGTH 2

  #define PIPELINE_CONFIG {4,2};

  由上述陈述式和预设的配置程序,TejaCC程序就能构建出流水线。当然,无论由于什么原因使得流水线的配置需要发生改变时,只要使用与上面相似的方法进行编辑即可。

  存储器

  第三个问题跟所需的存储器数量有关。在一个典型的系统中,所能存储的代码和数据的数量是固定的。如果你的设计没有满足这一要求,就需要做大量的工作来将多出的内容压缩到存储空间中。但是在使用FPGA时,只要所需存储器的数量在芯片所能提供的范围之内,就能够按照实际需要为每个处理器分配存储空间。在更典型的情况下,所有的存储空间的大小都相同(由于每个块的最小容量为2k,这就限制了进行微调的程度)。

配置并行流水线的流程

图2 - 配置并行流水线的流程[page]

  代码编译时提供所需存储器的大小,并且可以使用下面的陈述式来编辑配置头文件,在这个示例中为代码和数据存储分配的存储空间均为8KB:

  #define CPE_CODE_MEM_SIZE_KB 8

  #define CPE_DATA_MEM_SIZE_KB 8

  使用减负器来加快处理速度

  第四个问题和创建硬件加速器有关。可能有一部分程序会占用太多的周期。要减少周期就需要更多的处理器,而使用硬件加速器就能减少处理器的数量。只要硬件加速器比其所替代的处理器占用更少的门,就能够减少整个硬件实现的面积。

  Teja有一项功能就是用来从代码中直接创建这样的加速器或减负器。通过对程序进行注释,此功能就可创建:

  •   实现代码的硬件逻辑
  •   通过系统接口在处理器基础设施中添加加速器
  •   调用原型替换程序中最初的代码
  •   在将减负器集成于系统之前,先使用测试台对其进行验证。

  一旦创建了减负器,周期数就会减少,因此你需要重新安排处理器。但由于重新定义流水线结构的操作十分方便,因此这是一项很简单的任务。

  一个简单直接的方法

  将前面所述的步骤组合在一起,就产生了图2中所示的设计流程。你可以先定义减负器(对于明显需要减负器的任务),或在配置好流水线之后再定义减负器(如果现有的代码使用了太多的处理器)。

  软件工程师所能控制的是一些在他们看来自然和简单的参数,这里使用自然的软件语言(ANSI C)来表达这些参数。对硬件进行实体化的所有细节都由TejaCC程序来处理,它会为Xilinx嵌入式开发系统(EDK)创建一个项目。剩下的编译/综合/布局/布线和产生比特流以及镜像代码的工作全都由EDK来完成。

    在这种方式下,电路板可以由硬件工程师设计,但通过使用FPGA,硬件工程师能够将最终的实现中硬件配置的关键部分,留给软件设计者去完成。这一方法还支持在设计即将完成时对电路板进行改动(例如,由于性能原因要对存储器的类型和容量进行改动)。由于Teja工具能创建FPGA的硬件定义,其中包括存储器控制器和其他外设,因此设计人员可以轻松地调节电路板。最终的结果是,由于硬件实现可以适应软件的变化,因此软件设计者不再需要花费大量的时间来围绕一个固定的硬件设置编写程序。

  通过利用灵活的Virtex - 4 FPGA和MicroBlaze核,Teja FP环境和基本结构使得所有这一切都变成了可能。有了这一强大的工具,你就能够将开发周期缩短几周甚至几个月。

  Teja还提供了一些高级应用程序,这些应用程序能用来启动一个项目,并减少所需的工作量。将一个灵活省时的设计方法和一个事先定义好的应用程序结合起来使用,网络设备的制造者就能更快地完成他们的设计。

关键字:多核处理器  硬件适应  FPGA 引用地址:调节多核处理器硬件适应软件设计方法

上一篇:如何用MiniGUI设计小键盘输入
下一篇:基于GCC的嵌入式程序插装技术

推荐阅读最新更新时间:2024-03-16 12:56

Ittiam Systems选用Stratix II FPGA
  数字信号处理系统领先供应商在高清晰电视、DVD和机顶盒芯片中选用了Altera的高性能FPGA器件   2007年3月6号,北京 ——Altera公司今天宣布,印度班加洛尔的数字信号处理(DSP)系统公司Ittiam Systems( www.ittiam.com )选用了业界领先的Stratix II FPGA系列来开发和实现Trinity多格式高清晰视频解码器(MFVDEC)软核知识产权(IP)。该IP内核设计用于数字电视、高清晰(HD) DVD、HD IPTV和HD机顶盒解决方案。Ittiam之所以选择了Altera的Stratix II FPGA系列,在于其大容量、高性能以及优异的信号完整性。   Ittiam
[焦点新闻]
3-DES算法的FPGA高速实现
摘要:介绍3-DES算法的概要;以Xilinx公司SPARTANII结构的XC2S100为例,阐述用FPGA高速实现3-DES算法的设计要点及关键部分的设计。 关键词:3-DES FPGA 高速实现 引 言   从技术角度讲,网络安全除了依赖安全的网络通信协议及应用协议外,更多地取决于网络设备如交换机、路由器等所提供的加/解密功能。目前,基于DES算法的加/解密硬件仍在广泛应用于国内卫星通信、网关服务器、机顶盒、视频传输以及其它大量的数据传输业务中。   然而,随着密码分析技术的不断发展,超期服役的DES算法已被攻破,随即美国商业部提出采用以Rijndael算法的AES作为新一代的加密算法。在不对原有应用系统作大的改动的情况下,3
[半导体设计/制造]
GPU/FPGA/ASIC 三种芯片有什么不同
根据赛迪咨询发布报告,2016年全球人工智能市场规模达到293亿美元。我们预计2020年全球人工智能市场规模将达到1200亿美元,复合增长率约为20%。人工智能芯片是人工智能市场中重要一环,根据英伟达,AMD,赛灵思,谷歌等相关公司数据,我们测算2016年人工智能芯片市场规达到23.88亿美元,约占全球人工智能市场规模8.15%,而到2020年人工智能芯片市场规模将达到146.16亿美元,约占全球人工智能市场规模12.18%。人工智能芯片市场空间极其广阔。 芯片承载算法,是竞争的制高点 人工智能的基础是算法,深度学习是目前最主流的人工智能算法。深度学习又叫深度神经网络(DNN:Deep Neural Networks),从
[嵌入式]
FPGA器件的在线配置方法
摘要:介绍基于SRAM LUT结构的FPGA器件的上电配置方式;着重介绍采用计算机串口下载配置数据的方法和AT89C2051单片机、串行EEPROM组成的串行配置系统的设计方法及实现多任务电路结构中配置的方法,并从系统的复杂度、可靠性和经济性等方面进行比较和分析。 关键词:配置 可编程逻辑器件 FPGA 在线配置 引 言 在当今变化的市场环境中,产品是否便于现场升级,是否便于灵活使用成为产品能否进入市场的关键因素。在这种背景下,Altera公司的基于SRAM LUT结构的FPGA器件得到了广泛的应用。虽然这些器件应用广泛,但由于其内部采用SRAM工艺,它的配置数据存储在SRAM中。由于SRAM的易失性,每次系统上电时,必
[半导体设计/制造]
40-nm FPGA拉开帷幕
当65-nm FPGA还未形成PLD市场的主流,40-nm FPGA 已经闪亮登场。2008年5月20号,Altera公司发布了业界首款40-nm产品: Stratix® IV FPGA和HardCopy IV ASIC。 目前,互联网传输视频、高速无线数据和数字电视等服务的需求不断增长,设计人员需要能够提供更高的数据速率、更高的接口带宽和数据处理能力更强的解决方案,而且其功效要好。 那么40-nm Stratix® IV FPGA和HardCopy IV 具有怎样的特质,来应对这些设计挑战?将给工程师带来什么好处?能帮助工程师解决什么困惑? 据Altera公司市场营销副总裁Jordan Plofsk
[焦点新闻]
40-nm <font color='red'>FPGA</font>拉开帷幕
基于单片机和FPGA的位移测量装置的设计
位移传感器广泛应用于工业和控制领域,如过程检测、物理测量和自动控制等。由于其测量精度不高,往往满足不了社会需求,也限制了传感器的应用。因此,这里设计了一套基于单片机和FPGA的位移测量装置,能够实现较高的精度测量,同时也能够达到较高的线性度,能够在各种恶劣环境下替代人工工作,实现较高精度的测量,并具有一定的实用价值。 1 整体设计方案及实现框图 系统整体实现框图如图1所示,由信号产生部分、差分放大部分、变压器耦合部分、信号处理部分、数据采样部分和处理及显示部分组成。利用DDS技术产生的信号经THS4503的差分放大之后送入差动变压器,差动变压器输出的信号经放大、整流以及滤波处理之后送入MAXl97采样,采样得到的数据经处理单元
[单片机]
基于单片机和<font color='red'>FPGA</font>的位移测量装置的设计
HD、动态背光控制和图像处理是未来DTV三大重点发展方向
进入2008年, 数字电视 ( DTV )在中国市场的普及步伐将日趋加快。相比模拟电视,数字电视的系统集成度、数据处理的复杂度都要更高,而且还具有多功能的特点,因而设计难度更大,芯片供应商和整机制造商也面临着更多挑战。从目前来看,其主要的技术发展趋势集中在以下几个方面:高清( HD )格式、动态背光功耗控制、大屏幕、互联性、增强图像质量以及提供更多功能。 HD、大屏幕、增强图像质量和互连性成主流趋势 意法半导体大中国区数字电视事业部高级经理Rodrigo Cordero表示,“未来数字电视的技术发展方向应是提高图像质量和不断增加功能。”他解释道,图像质量的提升将主要体现在数据处理技术(运动估计和补偿、数字降噪、抖动消
[应用]
基于DSP Builder的DDS设计及其FPGA实现
直接数字合成器,是采用数字技术的一种新型频率合成技术,他通过控制频率、相位增量的步长,产生各种不同频率的信号。他具有一系列的优点;较高的频率分辨率;可以实现快速的频率切换;在频率改变时能够保持相位的连续;很容易实现频率、相位和幅度的数控调制等。目前可采用专用芯片或可编程逻辑芯片实现DDS ,专用的DDS芯片产生的信号波形、功能和控制方式固定,常不能满足具体需要 。可编程逻辑器件具有器件规模大、工作速度快及可编程的硬件特点,并且开发周期短,易于升级,因为非常适合用于实现DDS。 1 DDS的工作原理 DDS的结构原理图如图1所示,DDS以数控振荡器的方式,产生频率、相位和幅度可控的正弦波 。电路包括了相位累加器、相位
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved