电子说
硬件的总体设计阶段是最锻炼硬件工程师的。我参与过很多硬件的总体设计,感觉这个阶段对我个人能力的提升锻炼是非常有帮助的。
首先,硬件按照大致的分类,可以分为:框式、盒式、终端类。
1、框式设备的总体设计
框式设备的总体方案,要看版本和阶段。有些大版本,需要重新定义机框,那么我们有时把机框的定义,也认为是总体设计阶段。这时总体设计的工作是繁重而高级的。
1.1【定义机框】
定义机框工作量大,而且需要考虑产品的迭代升级,产品持续的竞争力,需要设计者具备全流程视野和战略能力以及技术深度和广度,对技术演进的预判能力。因为工作量大,所以繁重;因为对工作能力要求高,所以高级。
定义机框,首先要做的第一件事情就是:定规格。
这个规格包含很多方面:
a、业务规格,这个需要满足客户期望、有市场竞争力、最合理的颗粒度。
我记得大学同学刚毕业的时候去烽火通信,去南美市场,销售光通信,当年号称密集光波分复用(DWDM),一根光纤传输1T带宽信号,全光通信,远距离传输。结果同学到了厄瓜多尔,一个国家都用不了一根光纤,在那里主要卖“猫”(调试解调器)。
所以业务规格很重要,并不是越大越好。我们当年我们做企业网,一开始没有设计专门的设备,认为用运营商设备借用到企业网,实现归一化。用运营商架构做企业通信设备,除了几个大银行能接受这么大规格的设备,小公司都没有这样的硬件规格需求。并且由于运营商的软件结构,在企业网也显得臃肿。
b、整框的电源、功耗、散热、可靠性的规格。当业务确定之后,需要根据整机的使用场景,确定整机的电源输入的特性,整体功耗的需求,以及散热条件。电源需要考虑一次电源转换为二次电源的能力。散热需要考虑风道是否合理,不同槽位的单板散热的差异,风扇失效模型等等。
c、定义背板
有些朋友要质疑,很多机框都是标准的,遵循标准即可,为什么还需要自己考虑定义背板。
第一,有些标准的背板定义并没有那么详细,需要自行定义一些接口。
第二,有些标准并不合理,需要各个厂家共同努力去演进。
第三,做硬件的需要有舍我其谁的霸气,需要参与到标准、专利中去。
1.2【定义单板】
其实很多工程师很奇怪,为什么华为出来的工程师,喜欢把电路板称为单板。其实没有特殊含义,就是因为他们大多数都是做框式设备出身,这个单板的“单”是相对于机框来说的“单”。也是相对于“背板”的单板。工种不同。如果你只能做“单板”,没有整机思维、系统思维,那说明你的技术确实很单一。
一旦机框明确之后,需要设计单板,需要做的事情就相对比较明确,而且这个事情的责任属性,更加“硬件工程师”。
a、定义功能
我们设计某一块单板的时候,实际是由整机的功能拆解下来的。在定义框的时候,其实应该考虑到各个单板的功能划分、软硬件接口、功能解耦等问题。同时包括不同的单板数量配置,实现不同的规格和不同应用场景的需求。
b、定义接口
对于框式设备,我们需要定义单板的面板接口和背板接口。一般来说背板接口是统一的,除了核心交换板之外,其他板应该是统一的,这样单板之间才具备位置互换,混插,替换等特性。这里不仅仅是ATCA架构,包括其他各种架构,应该都有这样的特性。应该有不少朋友用过NI的虚拟仪器,他的PXI机框应该也具备这种特性。面板接口一般是根据业务需求和功能需求去定义的。
c、核心功能器件选型
我们根据业务需求,需要定义我们的核心器件。所以首先需要评估其业务能力,最主要的器件是:CPU、DSP、FPGA、内存、FLASH、接口芯片等。
在选型CPU的时候,首先我们需要区分其应用场景,是常规嵌入式应用,还是服务器应用。如果是服务器应用,一般是X86或者是服务器级别的多核ARM,如果是嵌入式,一般是ARM、MIPS、早期的PowerPC、现在流行的RISC-V等内核,也包括选择X86。
如果是服务器应用,需要考虑处理器选型的规格,一般用于X86专门的评价标准,SPEC是由标准性能评价机构“Standard Performance Evaluation Corporation”的简称。其下面有SPEC CPU、SPEC POWER等很多测试标准工具,例如:SPEC CPU 2006测试运算性能,SPECpower_ssj2008测试功耗。
SPEC CPU是标准性能评价机构 (SPEC)开发的用于评测CPU性能的基准程序测试组,是一套CPU子系统测试工具。处理器、内存和编译器都会影响最终的测试结果,而I/O(磁盘)、网络、操作系统和图形子系统对SPEC CPU2000的影响非常小。目前,SPEC CPU是业界首选的CPU评测工具。SPEC CPU包括CINT和CFP两套基准测试程序。
SPECCInt即SPE Cpu Integrate的简写,SPECCFP即SPE Cpu Float Point的简写。前者用于测量和对比CPU的整数性能,后者用于测量和对比浮点性能。CINT包含十几个个测试项目,CFP也包含十几个个测试项目。
我曾经测试Intel的新产品的SPEC,发现有很多规格并没有那么理想,如果达到官方宣称的数据,需要打开很多超频功能,也需要软件进行配合。
SPEC测试需要注意的还有以下几点:
①SPEC CPU2006测试所得到的数据不能和CPU2000进行直接对比,因为它们是基于不同的算法结构;
②其次SPEC测试时,CPU基本是100%跑的,所有基本不能进行其他复杂的数据操作或者编译操作;
③测试过程时间较长,中间是不允许中断的,除非kill掉和SPEC相关的所有进行,results中的debug文件也只会保留kill进程之前的最后一个测试完成的场景结果。
如果发现最终的SPEC值过低,可以从以下几点中查找结果:
①编译器是否正确,是否符合进行测试的处理器;
②其次是指令集是否为此CPU的最佳指令集;
③内存的配置是否符合要求;
④处理器的实际工作频率是否达到它应有的频率;
⑤温度等外在的环境因素是否导致处理器降频使用。
如果单板不是用作服务器应用,此时可以用MIPS作为指标进行评估。此时的MIPS不是处理器架构。MIPS(Million Instructions Per Second):单字长定点指令平均执行速度 Million Instructions Per Second的缩写,每秒处理的百万级的机器语言指令数。这是衡量CPU速度的一个指标。像是一个Intel80386 电脑可以每秒处理3百万到5百万机器语言指令,即我们可以说80386是3到5MIPS的CPU。MIPS只是衡量CPU性能的指标。
准确测试cpu的mips或者mflops一般是设计体系结构时候用cpu模拟器或者verilog前仿得到的。对于用C语言比较准确的测试mips或者mflops,你可以用一个程序读取系统时间,然后执行第二个程序,第二个程序执行完成后再记录执行的时间,然后反汇编第二个程序,统计第二个程序中执行的指令条数,通常第二个程序中执行的指令数是确定的,(分支和循环的次数是可确定的)。mips和mflops在RISC CPU的评价中比较有价值。
处理器的主频提高与业务能力不是线性的,同样其测试结果也不代表其业务能力。有些处理器的实际性能用简单的评价标准并不能说明其业务能力,需要直接测试其业务能力。直接在demo板上移植业务软件,评估其业务能力是最可信赖的一种方式。例如当年我们选择多核DSP(shannon)时,直接测试其G.711转码性能,与原先的单核DSP进行对比,可以得出具体的业务能力。然后根据其业务需求,评估需要在一块单板上安排多少数量。当然还需要评估成本、功耗、散热等维度的挑战。
d、数据流
有了核心器件的规格之后,我们需要根据单板的业务模型,绘制出各种业务需求下的数据流向,来明确接口是否是瓶颈,同时我们在每个终端器件或者核心器件的存储空间的需求。
例如上述硬件,FPGA主要对以太网协议进行解析,根据数据包的内容,进行分发数据,将信令分给处理器做处理,将语音或者视频的编解码分给DSP进行处理。此时我们需要考虑语音如何传输、信令如何传输。
同时,需要考虑数据分发时,FPGA需要多少逻辑资源。编解码数据和信令数据的比例关系,根据业务模型,评估CPU与DSP的性能匹配关系。同时根据业务量和数据特性,评估FPGA外挂的DDR的数据带宽需求,以及存储数据深度的需求,进一步评估DDR的速率和容量。同时由于DDR的数据接口的特性,还需要评估其传输效率,还有吞吐数据非连续性时开销与连续地址数据开销的差异。
当然这一系列的计算和评估是需要积累和背景,同时也需要各个维度的技能。
2、盒式设备
一般来说,盒式设备都面临白热化是竞争环境,例如:交换机、路由器、统一通信设备、NVR等等。
盒式设备一般都是产品组合,用不同的产品整机形态应对不通的市场规格需求。如何规划好产品的规格,也是非常重要的。所以盒式设备的系统工程师和规划师往往花费大量的精力到产品组合设计。
有些企业通过主板+扣板的形式,实现了产品多样化和多规格。
盒式设备的散热一般是自然散热,其热仿真需要充分考虑其没有风道的情况下壳体的最高热容忍度。特别是一些大功率设备的应用。
盒式设备的噪声要求、散热要求会与框式设备不一样,有些场景下更像终端类设备。
盒式设备的总体设计与框式设备在单板设计部分基本一致,当然还有很多不同点,本文不展开,会在我们的新书中展开。
3、终端设备
终端设备的典型是手机、摄像头、无人机、机器人、对讲机、智能穿戴。终端设备的设计考虑和理念跟盒式、框式有更大的区别。
手机的散热并不是像框式设备那样要充分散热。手持式设备需要考虑不能把热量完全导出来,会影响客户感受。
穿戴式设备,还需要考虑人体对无线辐射的接受度和影响。
成本、重量、量产、可生产性等等维度,本文也暂时不展开,后续我们其他文章再展开。
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !