• 工作总结
  • 工作计划
  • 心得体会
  • 述职报告
  • 事迹材料
  • 申请书
  • 作文大全
  • 读后感
  • 调查报告
  • 励志歌曲
  • 请假条
  • 创先争优
  • 毕业实习
  • 财神节
  • 高中主题
  • 小学一年
  • 名人名言
  • 财务工作
  • 小说/有
  • 承揽合同
  • 寒假计划
  • 外贸信函
  • 励志电影
  • 个人写作
  • 其它相关
  • 生活常识
  • 安全稳定
  • 心情短语
  • 爱情短信
  • 工会工作
  • 小学五年
  • 金融类工
  • 搞笑短信
  • 医务工作
  • 党团工作
  • 党校学习
  • 学习体会
  • 下半年工
  • 买卖合同
  • qq空间
  • 食品广告
  • 办公室工
  • 保险合同
  • 儿童英语
  • 软件下载
  • 广告合同
  • 服装广告
  • 学生会工
  • 文明礼仪
  • 农村工作
  • 人大政协
  • 创意广告
  • 您现在的位置:六七范文网 > 其它相关 > 正文

    Xtensa可配置处理器及其自动化开发工具

    来源:六七范文网 时间:2023-05-20 14:45:26 点击:

    可配置处理器标志着第四代微处理器设计的开始,这种技术更加适合片上系统SoC的设计。每一代处理器持续大约十年时间,每个时代的处理器适合当时的需要。大约在20世纪70年代出现了第一代处理器,这个时期的处理器设计只是简单地追求性能,从4位处理器到早期的16位和32位微处理器。这种性能的提升奠定了20世纪80年代PC和工作站的基础。PC和工作站的增长使得微处理器设计进入了20世纪80年代的第二代微处理器研制时期。精简指令集RISC设计时代发生在20世纪90年代。在这个时期,即使像X86这样坚定的复杂指令集CISC处理器也假装成精简指令集RISC体系结构。在最初的这三代处理器的成长和发展过程中,微处理器设计专家将处理器设计成固定的、单个的和可重用的模块。但是,在20世纪90年代随着专用集成电路ASIC和片上系统SoC制造技术的发展,为微处理器设计进入第四代(即后RISC、可配置处理器)打下了坚实的基础。

    以往的32位处理器核不能处理许多片上系统SoC设计中的大计算量任务,比如多媒体和网络通信。因此,片上系统SoC设计者必须采用硬件描述语言(Verilog或者VHDL)来实现这样的任务。采用手工编写的RTL硬件模块所带来的问题是验证时间主导了设计周期,这将增加设计的成本并延长进入市场的时间。

    现在有一种替代RTL设计的方法。工程师可以使用可配置、可扩展的处理器而不是RTL来完成系统设计,这种方法设计时间更快,同时也更灵活地改变产品的标准和要求。Tensilica公司的Xtensa LX处理器可以为用户提供输入/输出吞吐量和计算性能,而这些在以前通常是只有RTL设计方法才能提供。Xtensa LX核还为用户提供增强的时钟门控技术来降低系统功耗。为了进一步提高片上系统设计者的能力来充分利用可配置处理器核的技术,Tensilica还开发了XPRES编译器,该编译器可以自动分析用C或者C++语言写的应用程序代码,然后产生一个可配置处理器核,产生的处理器核是经过优化的,适合目标代码的运行。这种设计方法非常快,可以在大约1小时内产生一个最佳处理器配置。有关XPRES编译器的内容,将在本文的最后进行描述。

    这种自动化的、可配置微处理器技术于1999年被引入半导体行业,用于片上系统SoC设计。这种技术的核心是Xtensa处理器生成器,该产生器基于服务器应用程序,可以产生优化的32位处理器核用于嵌入式应用,用户可以自己进行功能扩展定义,以建立针对片上系统SoC中某些特定任务应用的微处理器核。

    Xtensa处理器生成器可以增加新的功能来自动产生用户所需要的硬件,产生的硬件是经过验证的RTL代码格式。自动产生的处理器RTL代码可以和现在的SoC设计流程无缝结合,可以用于逻辑综合。处理器生成器还可以建立与产生的处理器相匹配的系统软件。

    随着对可配置处理器技术经验的提高,片上系统SoC设计者开始需要以下指标:更高的系统性能、更高的I/O带宽和更高的功耗利用率。第六代可配置处理器Xtensa LX可解决以上问题。Xtensa LX处理器核增加了几项显著改进,用于提高可配置处理器的性能。

    可配置处理器突破I/O瓶颈

    为了提高I/O带宽,必须克服总线瓶颈。图1给出了总线瓶颈的示意图。总线瓶颈问题是自从Intel在1971年引入第一个商用微处理器4004以来就存在的问题。每个处理器都和系统总线上的其余部件进行通信。总线上的流量由加载/存储部件控制。由于总线的固有特性,在任何时候,只允许一小部分数据在总线上和处理器进行通信。另外,加载/存储单元和处理器内部执行部件,以及处理器局部存储器通过类似有限的总线进行通信。这种单一的、一次只能一个方向的处理器总线特性严重限制了微处理器的系统吞吐量。

    Tensilica在Xtensa LX处理器中增加了一个特性来消除总线瓶颈问题。这种新的特性称为TIE(Tensilica指令扩展)端口和队列技术。采样TIE端口和队列技术,设计者可以定义多达1024个端口直接与Xtensa LX处理器执行部件相连接,如图2所示。每个端口宽度可以达到1024位。这种技术的结果是可以使系统以350 000Gb/s的速度与XtensaLX处理器进行信息交换。这可以充分满足所有处理器的I/O带宽需求和采用RTL技术设计的系统需求。

    可配置处理器提高计算性能

    随着传统微处理器总线瓶颈的解决,处理器工程师们将注意力集中到提高Xtensa LX处理器的性能上,以便使得计算性能的提高可以和通过设置TIE端口和队列来提高输入/输出带宽相匹配。

    Tensilica在1999年开始引入第一个可配置Xtensa处理器以来,片上系统SoC设计师已经具备能力来自己定义新指令,定义的新指令基于多操作(例如加法运算跟随一个移位或者一个位选择操作)技术,多操作指令可以作为一条新的指令。将多个操作合并在一起成为一条新的机器指令,该技术称为操作数融合。操作数融合技术可以有效提高微处理器的计算性能。另外,片上系统SoC设计者可以在Xtensa处理器版本中添加SIMD(单指令、多数据)指令。单指令流多数据流SIMD指令可以同时对多个数据元素执行相同的操作,该技术也可以显著提高微处理器的计算性能。

    然而,操作数融合和单指令流多数据流SIMD指令仍然只是微处理器的特征,每次只能发射一条指令。为了更有效地提高系统性能,Xtensa LX处理器核中增加了每个时钟周期发射多条指令的能力。

    从历史的观点来看,处理器设计人员可以通过两种方法来使得微处理器具有每个时钟周期可以发射多条指令的能力。第一种方法称为超标量设计技术,该技术通过复制处理器整个执行部件来保证指令译码和发射部件在每个时钟周期可以发射多条指令。采样这种方法,处理器硬件必须在应用程序代码中找到软件固有的指令级并行性。该技术的缺点是超标量处理器用于完全复制处理器执行部件的硬件开销大,而且程序代码中缺少指令级并行性。尽管4路超标量处理器设计时可以在每个时钟周期发射4个操作,但是实际上从通用程序代码中抽取的平均指令级并行性通常低于两个操作。

    第二种通用的方法是采样称为超长指令字VLIW的技术,来保证处理器每个时钟周期发射多个操作。该方法采用一个非常长的指令字来对多个操作进行编码,有时每个指令字可以达到几百位,多个操作可以同时发射到VLIW处理器的多个执行部件。VLIW处理器的

    编译器负责找出应用程序代码中的指令级并行性,VLIW处理器编译器通常具有比较高的能力来识别程序中的并行性,因为编译器扫描指令的窗口范围比超标量处理器要大,而超标量处理器是采用指令译码和发射部件来对指令代码的并行性进行调度。VLIW技术从处理器硬件开销的角度来说是非常有效的,然而VLIW处理器会造成指令代码的急剧膨胀(故需要更大的存储器),因为每条VLIW指令字都非常长,而且VLIW编译器经常不能找到足够的目标程序代码中的指令级并行性,来保证处理器中的每个执行部件都保持忙碌状态。因此,VLIW处理器由于带有与代码相关的特性以及会耗尽片上的指令存储器,故对深度嵌入式应用的处理器而言也不是一个理想的选择。

    因此,Tensilica处理器设计人员开发了一种变种VLIW结构,称为可变长度指令扩展FLIX技术,用于XtensaLX处理器。和VLIW指令一样,FLIX指令可以将多个独立的指令操作进行编码,变成一个FLIX指令字,该指令字宽度为32位或者64位,如图3所示。和所有设计人员定义的TIE指令一样,FLIX指令均是可选择的,并且它们可以和Xtensa LX处理器现有的16和24位指令自由地混合在一起。因此,采用FLIX指令就避免了代码膨胀问题,同时应用程序代码执行速度更快,而不是使得程序代码变得很长。

    由于提高了输入/输出带宽和计算性能,因此基于Xtensa LX处理器的片上系统SoC设计通常可以以比基于固定指令集体系结构ISA的处理器更低的时钟频率进行运行,这些低频的时钟频率可以保证系统有更低的SoC系统功耗。然而,Xtensa LX处理器还可以通过扩展的内部时钟门控技术来保证系统有更低的系统功耗,时钟门控技术是由TIE指令进行自定义扩展的。

    由于微处理器是由指令进行驱动的,因此可以通过对处理器指令执行流水线中的指令进行分析,来确定在某些时间处理器的哪些部件处于运行状态。这种分析通常需要几十亿个系统仿真时钟周期,这样可以让Xtensa LX设计人员在处理器设计时通过增加细粒度时钟门控来关闭那些指令执行过程中没有执行到的处理器单元部件。进一步,如果处理器没有执行到的TIE操作,那么Xtensa LX就可以对TIE扩展定义的整个系统硬件关闭时钟。因此,XtensaLX处理器可以拥有几百个不同的门控时钟域,这样可以真正使得微处理器的活动功耗降到最低。

    设计过程自动化的工具—XPRES编译器

    可配置Xtensa LX处理器能够让设计人员对处理器进行量身定做,以满足片上系统SoC中的特定任务。为了弥补手工定做的过程,Tensilica设计了一个称为XPRES(Xtensa PRrocessor ExtensionSynthesis)的自动化定做工具,该工具可以对用C或者C++写的应用程序代码进行自动分析,然后将TIE定义提交给Xtensa处理器生成器,进而产生所需要的处理器。因此,XPRES编译器作为一个前端C/C++处理器,形成Xtensa设计流程,如图4所示。

    XPRES编译器的一个最大优点是可以对已有的C/C++应用程序代码进行分析,也不需要对代码修改就可以将其应用于XPRES编译器。分析完成后,XPRES编译器从操作数据流图中导出TIE指令扩展信息,数据流图是从提交的应用程序代码中产生的。图5表示出了数据流图的一个实例。从这些数据流图中可以看出,XPRES编译器能够自动用TIE语言为Xtensa LX处理器定义融合操作、SIMD指令和FLIX指令。

    然而,XPRES编译器不能从C/C++应用程序代码中推断出一些关键的工程设计目标。尤其是它不能判断出系统设计的理想性能目标(“越快越好”是很少作为设计目标的,因为这样的设计目标在许多情况下将会导致功耗代价。),而且它也不能判断出门数约束,因为这些约束是不会在软件应用程序代码中出现的。因此,XPRES编译器产生一系列设计选项在性能(用时钟周期数来表示)和门数之间进行折中,同时编译器可以通过图的方式画出这些选项,让设计团队来选择他们所需要的合适选项,如图6所示。在图6所示的例子中,设计团队选择了一个由XPRES编译器产生的处理器,设计选项由XPRES编译器产生,针对用C/C++编写的专门应用进行编译。该处理器可以将系统性能提高10倍,但新增加的硬件门数不超过两万门。

    XPRES编译器速度非常快,它通常只需运行几分钟或者几十分钟。因此,XPRES编译器是一个非常有效的设计工具,适合快速设计的开发。XtensaLX处理器核与XPRES编译器结合在一起,建立起一套非常有效的设计工具以提升设计团队的设计效率,极大地缩小了完成一个片上系统SoC设计所需要的RTL验证时间,同时缩短了整个SoC的设计周期。

    结论

    同其他嵌入式处理器一样,XtensaLX处理器建立了一个完整的可编程的设计环境,系统软件可以自动产生,充分利用了扩展技术来构建所需要的微处理器。可编程是一个很大的优点,因为在芯片制造完成后系统的改变可以通过软件来完成。例如,在音频应用领域,多种音频标准可以在同一个处理器中运行。这对系统设计来说是非常有效的,不需要针对每一个音频标准来设计像MP3、MPEG-2、MPEG-4或者AC-3这样不同的应用模块。

    Xtensa LX可配置和可扩展微处理器核提供一种更快、更有效地产生RTL的方法。通过XPRES编译器,设计人员可以充分利用Xtensa LX处理器的先进技术,而不需要具备高深的设计知识,他们只需要理解自己的应用算法、知道想在处理器中实现什么应用即可。

    推荐访问:开发工具 处理器 自动化 配置 Xtensa