18世纪的发明家查尔斯。巴贝奇(Charles Babbage)是开路先锋。虽然他发明的“差分机”重达五吨,具有20,000多个运动零件,这台机器依然是杰出特殊的发明物,由于它是能够重复编程的。关于一切硬件而言,它就是从中锋芒毕露的奇特软件。
在现代,全球工程规划团队的查询显现,他们编写软件的时刻要比发明硬件的时刻更多。工程规划公司雇佣的程序员也比工程师数量更多,并且开发人员在挑选MPU芯片之前,绝大多数都会首要挑选运转芯片的软件环境。他们营销部分的搭档深知,软件能够供给令产品卓著不群最为直接的捷径。原始代码能够供给“附加值”:绝无仅有的要素能够令一种产品在鱼龙混杂和快速开展的商场中锋芒毕露。
这不是说硬件并不重要:恰恰相反。硬件规划的重要性实际上现已变得清楚明了。硬件需求快速推出,功用经过优化能够完成开箱即用,并且具有软件认识。
接下来的过程
假如MPU仅仅到达意图的手法——即开释现有软件根底才能的途径或许钥匙——接下来重要的一步就是挑选正确的钥匙。非常遍及的处理器架构(例如Intel? x86)能够供给丰厚的x86软件装备,其间大多数都为个人计算机商场开发。相同,Power Architecture?、ARM?或许MIPS架构都装备包含了各自软件“沙龙”的成员。假如意图是为了运转个人计算机软件,x86处理器归于必备的挑选。关于嵌入式或许工业商场而言,开发人员的挑选计划则愈加灵敏。
当大多数程序依然选用汇编言语编写的年代,处理器的挑选也决议了程序员的挑选。开发人员专门致力于各种不同的CPU指令集,勤勉研究他们各自首选的ISA.代码自身与编写代码的人才比较相同相同不易转化移植;为一个处理器系列编写的软件关于另一个处理器系列彻底无用,除非作为下一次的实例解说怎么构建代码。编码的保卫者会为汇编言语辩解,宣称它的高效与快速,而他们的业务经理一般会讪笑它开发缓慢、过度臃肿、只能针关于一种硬件渠道、难以移植,关于没有深化原始开端作业的人员而言过分神秘莫测。
抱负状况下,软件能够完成快速和高效性,一起能够快速轻松地进行开发与保护。没有技能现已完成这种抱负的状况,虽然现已完成了汇编水平编程的过渡,向更高水平的言语(例如C言语)跨进,这供给了极大程度的协助。现在,不到10%的嵌入式开发人员还在遍及运用汇编言语;超越70%的开发人员简直只在运用C或C++言语。可移植操作体系对此也有协助。特别是Linux?适用于简直一切处理器架构和一切硬件装备,使它成为了嵌入式开发人员近乎通用的渠道。
在可移植编程言语和通用渠道之间,这个职业比以往任何时候都更有或许完成代码功率(从运转时功用视点考虑)和开发功率(从本钱、上市时刻和可保护性视点考虑)之间的抱负平衡。功用与灵敏性和易用性之间的平衡成为了嵌入式处理器供货商之间争相竞逐的范畴。这就是软件感知架构变得至关重要的原因地点。软件感知架构是协助客户经过功用优化的代码库和(便于施行的)软件,能够充沛使用和轻松发掘架构才能和功用的一种渠道。
Layerscape架构介绍
Layerscape架构是下一代QorIQ LS系列片上体系(SoC)的底层体系架构。从一开端便旨在充沛使用新的开发、提取和功率实际条件(从字面的两层意义了解),Layerscape架构的创立是为了让程序员找到极为轻松的方法“开释”每一块芯片的功用。该架构延伸了当时向多核芯片规划开展的趋势(包含同构和异构),以取得功用最大化,一起也能够提取满足的杂乱硬件,以便让软件开发变得高效、可保护、灵敏、快速和相对简练。简而言之,Layerscape架构能够完成手写汇编言语代码的功用和功率与高档级言语易用性和现代代码可保护性之间的平衡。
Layerscape架构能够视为QorIQ P和T系列内数据途径加快架构(DPAA)的演进——这是一种由多个CPU内核与加快器自身支撑网络接口和加快器的根底设施。
Layerscape架构方框图
图1.一切LS系列芯片都选用逻辑方法(虽然并非总是从物理视点)被区分为三个层次。最高层包含恣意类型的处理器,例如根据Power Architecture或许ARM技能的处理器。向下一层能够经过缓冲区、行列和API拜访,能够提取施行项意图具体信息。
Layerscape架构能够扩大DPAA,在ISO网络模型的独立层中单独地恰当加快,这取决特定的芯片。有些芯片(例如)能够处理软件紧缩,而其他芯片具有专用的硬件加快器。不管选用哪种方法,功用对程序员都是通明的,这让一个芯片的施行切换到另一个芯片的施行变得简略直接,无需修正代码。结构化编程接口会包含紧缩(在这个比如中),这样代码既不会调用它,也不会被它所调用,需求了解紧缩实际上是怎么使用的。再次重申,提取能够保存功率与功用,也能够坚持开发人员的沉着。
在QorIQ LS系列中,每一个通讯处理器依照逻辑方法区分为三层,如图1所示。通用处理层(GPPL)、加快包处理层(APPL)和快递包(express packet)输入/输出层(EPIL)别离粗略地代表了规范ISO模型的高、中和低层。不管芯片是否选用物理方法进行如此区分无关紧要;程序员认同这种方法,这与单个芯片怎么进行分配无关。
在最底层,快递包I/O层(图1,褐色部分)供给支撑L2+转化功用的一切网络接口之间真实具有决议性的线速功用,并且包含芯片的网络数据报接口(例如Ethernet、Interlaken、Serial RapidIO?、HiGig和PCI Express?)。重要但不相关的接口(例如USB或许SATA)将不会归于这个接口层的组成部分,但会成为芯片“体系接口”模块的一部分,如图左边所示(图1)。虽然严格来说,PCI Express并不是网络接口,它一般用作为仓库中刀片之间的接口,因而也包含在此处。
中心层(图1蓝色显现区块)包含芯片的包处理元素,它们或许是硬接线加快器、可编程引擎或许二者的组合。APPL能够经过传统次序、同步、完好运转的模型供给客户界说的、自主和附加值功用,经过嵌入式C言语结构化编程完成彻底可编程。再次重申,这些元素能够经过界说明确的接口与通用处理器进行通讯,选用保存极具价值的开发人员代码的方法,提取它们(和处理器的)履行的具体信息。
通用式处理器(图1,绿色显现区块)清楚明了是归于通用性质,并且面向用户/开发人员免费供给,用于他们的操作体系、使用、高水平代码和其他附加值、功用。与Layerscape架构的提取、功率和硬件独立性的价值坚持共同,这一层能够一起支撑Power Architecture和ARM内核。一个人人皆知的事实是,Power Architecture技能一般选用二进位字节次序,而ARM技能一般归于小端字节次序,但是Layerscape架构能够轻松地支撑这两种技能。
清楚明了,模块化硬件架构适用于很多不同的芯片装备,并且是横跨渠道装备共同化软件的单一架构。模块化和灵敏的硬件结构包含独立可扩展的层次,能够完成QorIQ产品组合的功用和电源功率最大化。如上所述,这些装备乃至包含不同指令集系列的通用型处理器,因而答应开发人员充沛使用不同的代码库。Layerscape架构的模块性向上晋级和向下降级——有时是在相同的物理套接字内——一起能够保存客户的代码。
例如,一次极为根底的芯片完成或许只包含低水平接口(例如以太网)和高水平通用式处理器(即ARM或许Power Architecture内核),之间没有任何中介加快器。在这种状况下,EPIL层会对帧行列履行包解析、分类和分配(不会显现)。然后通用式CPU(或许或许为多个CPU)会耗费行列的这些数据包。
在多个以太网端口内扩展这一理念,使用Layerscape架构内置“链路聚合”(link aggregation)功用,相同的芯片能够作为第2层交换机。预分配容量愈加充沛的芯片或许在中心APPL包含硬件,以便完成颗粒度级的数据包分类、IPsec、SSL、LRO/TSO和其他高档联机卸载。与此类似,低水平EPIL或许会辨认确认的数据包类型,并且直接将它们传送至中心APPL的相关加快器,彻底绕开通用式处理器。
该解决计划的根底在于其软件答应程序员快速且轻松地使用架构的才能。这款解决计划首要从优化的网络库下手,完成硬件加快功用(例如IPSec、深度包检测、IP转发、NAT/FW等),答应嵌入式开发人员专心于增值软件的开发,而无需进行功用调优。界说明晰的数据途径和操控API都是许多网络使用的规范装备,能够选用指令性C言语编程模型针对定制化使用轻松完成扩展。除此之外,软件结构能够供给规范服务(例如调试和装备、资源管理、虚拟化和初始化),以便保证易用性。最终,能够供给要害使用(例如软件界说网络、有线传输和回程、TCP停止和路由挑选)的参阅完成,这不仅能够下降您的研制出资本钱,并且还能够加快上市时刻。
总结
Layerscape架构将现在功用最强的通讯处理器与全世界都在选用的类似的模块化、高水平编程模型彼此结合。这无需硬件工程规划的高档等级,便可轻松取得高档通讯引擎。愈加重要的是,它不需求重新学习每个芯片完成的具体细节,能够作一代QorIQ LS系列器材由其后继产品直接替代。边界清楚和界说明晰的编程模型能够在芯片之间、代代之间保存下来,这是根据开发人员的作业构建构成,而非将其视为硬件完成改变使命弃之不必。简而言之,Layerscape架构将开发团队最为重要和最具价值的方面保存了下来:即它独具特色的软件。再次重申,恰当的硬件才是开释软件潜力的要害地点。