Woody Home Page
 
   
AR1688 Z80性能
  
2008年12月2日
在写完Z80速度10个月后, 我们已经积累了很多有关AR1688 Z80性能和网络电话系统限制的经验.
慢的2x16 LCD控制器是导致Z80不能跑48MHz以上的最常见原因. 也很好解决, 换一个快的就行. 市场上其实有很多快的控制器, 那些慢的仅仅只是因为太古老. 点阵显示的LCD控制器全部都很快, 从来没有出过类似问题.
接在Z80数据总线上的程序存储器不够快是另外一个原因. 幸运的是我们发现程序存储器只是在写入的时候不够快. 这样我们可以在写程序存储器的时候让Z80跑24MHz, 其它绝大多数时间系统都能够跑高速.
网络芯片是最后一个接在Z80数据总线上的, 解决了LCD和程序存储器问题后, 就由它决定AR1688网络电话到底能跑多快.
接最常用的RTL8019AS, Z80能跑60MHz.
Micrel KSZ8842不如RTL8019AS, 接它的时候Z80只能跑45MHz.
单纯从速度上考虑, Davicom DM9003是最好的, 接它的时候Z80能跑AR1688芯片的设计极限72MHz.
Z80性能到底重要在什么地方?
即使Z80跑24MHz, AR1688网络电话也能处理1Mbps的UDP数据. 大约10倍于普通的VoIP流量. 因此Z80性能跟网络性能关系不大.
当考虑周期性的重新注册消息对语音产生的抖动影响(Rtp优先), Z80性能就重要了, 因为我们用它计算MD5. 做少于56字节的单次加密计算时, 48MHz需要4.7毫秒, 60MHz需要3.7毫秒, 72MHz需要3.0毫秒.
由于软件接口不同, 上面链接中描述的"Rtp优先"策略只能用在RTL8019AS上. 对KSZ8842和DM9003就需要让MD5计算越快越好了. 除了让Z80跑更高频率, 我们也在计划对MD5算法做更多的汇编优化.
Z80性能也会影响"实际"DSP运算能力. 在Z80和DSP交换数据的时候, 我们会把DSP放在一个只能进中断处理的循环中等待. Z80读写DSP数据越快, DSP等待时间就越少, 实际运算能力就越高.
为什么我一直在谈论性能和优化? 可能这是我唯一知道自己能做好的事情吧.
  
"We should forget about small efficiencies, say about 97% of the time:
premature optimization is the root of all evil." - Donald Knuth "Structured
Programming with go to Statements" Computing Surveys, Vol. 6, No. 4,
December, 1974, page 268.

本页面尚无任何评论.

更多选项? 请先登录或者注册. metropolitan-tundra