硬件设计怎么做,设计软件流程分析?( 二 )


点 评:对于内部不太复杂的芯片功耗是很难确定的 , 它主要由引脚上的电流确定 , 一个ABT16244 , 没有负载的话耗电大概不到1毫安 , 但它的指标是每个脚可 驱动60毫安的负载(如匹配几十欧姆的电阻) , 即满负荷的功耗最大可达60*16=960mA , 当然只是电源电流这么大 , 热量都落到负载身上了 。
现象六:存储器有这么多控制信号 , 我这块板子只需要用OE和WE信号就可以了 , 片选就接地吧 , 这样读操作时数据出来得快多了 。
点评:大部分存储器的功耗在片选有效时(不论OE和WE如何)将比片选无效时大100倍以上 , 所以应尽可能使用CS来控制芯片 , 并且在满足其它要求的情况下尽可能缩短片选脉冲的宽度 。
现象七:这些信号怎么都有过冲啊?只要匹配得好 , 就可消除了
点 评:除了少数特定信号外(如100BASE-T、CML) , 都是有过冲的 , 只要不是很大 , 并不一定都需要匹配 , 即使匹配也并非要匹配得最好 。象TTL的输 出阻抗不到50欧姆 , 有的甚至20欧姆 , 如果也用这么大的匹配电阻的话 , 那电流就非常大了 , 功耗是无法接受的 , 另外信号幅度也将小得不能用 , 再说一般信号 在输出高电平和输出低电平时的输出阻抗并不相同 , 也没办法做到完全匹配 。所以对TTL、LVDS、422等信号的匹配只要做到过冲可以接受即可 。
现象八:降低功耗都是硬件人员的事 , 与软件没关系
点 评:硬件只是搭个舞台 , 唱戏的却是软件 , 总线上几乎每一个芯片的访问、每一个信号的翻转差不多都由软件控制的 , 如果软件能减少外存的访问次数(多使用寄存 器变量、多使用内部CACHE等)、及时响应中断(中断往往是低电平有效并带有上拉电阻)及其它争对具体单板的特定措施都将对降低功耗作出很大的献 。
三:系统效率
现象一:这主频100M的CPU只能处理70% , 换200M主频的就没事了
点评:系统的处理能力牵涉到多种多样的因素 , 在通信业务中其瓶颈一般都在存储器上 , CPU再快 , 外部访问快不起来也是徒劳 。
现象二:CPU用大一点的CACHE , 就应该快了
点 评:CACHE的增大 , 并不一定就导致系统性能的提高 , 在某些情况下关闭CACHE反而比使用CACHE还快 。原因是搬到CACHE中的数据必须得到多次 重复使用才会提高系统效率 。所以在通信系统中一般只打开指令CACHE , 数据CACHE即使打开也只局限在部分存储空间 , 如堆栈部分 。同时也要求程序设计 要兼顾CACHE的容量及块大小 , 这涉及到关键代码循环体的长度及跳转范围 , 如果一个循环刚好比CACHE大那么一点点 , 又在反复循环的话 , 那就惨了 。
现象三:这么多任务到底是用中断还是用查询呢?还是中断快些吧
点 评:中断的实时性强 , 但不一定快 。如果中断任务特别多的话 , 这个没退出来 , 后面又接踵而至 , 一会儿系统就将崩溃了 。如果任务数量多但很频繁的话 , CPU的 很大精力都用在进出中断的开销上 , 系统效率极为低下 , 如果改用查询方式反而可极大提高效率 , 但查询有时不能满足实时性要求 , 所以最好的办法是在中断中查 询 , 即进一次中断就把积累的所有任务都处理完再退出 。
现象四:存储器接口的时序都是厂家默认的配置 , 不用修改的
点评:BSP对存储 器接口设置的默认值都是按最保守的参数设置的 , 在实际应用中应结合总线工作频率和等待周期等参数进行合理调配 。有时把频率降低反而可提高效率 , 如RAM的 存取周期是70ns , 总线频率为40M时 , 设3个周期的存取时间 , 即75ns即可;若总线频率为50M时 , 必须设为4个周期 , 实际存取时间却放慢到了 80ns 。
现象五:一个CPU处理不过来 , 就用两个分布处理 , 处理能力可提高一倍
点评:对于搬砖头来说 , 两个人应该比一个人的效率高一倍;对于作画来说 , 多一个人只能帮倒忙 。使用几个CPU需对业务有较多的了解后才能确定 , 尽量减少两个CPU间协调的代价 , 使1+1尽可能接近2 , 千万别小于1 。

推荐阅读