为什么Win9x的定时器精度为55毫秒?
在Windows 95上,定时器的精度为55毫秒,原因可以追溯到IBM电脑的BIOS。原版的IBM电脑使用到了一枚1.19MHz的晶振芯片,而此频率下的65536个CPU周期刚好差不多就是55毫秒。为什么说是刚好?因为如果要更加精确的话,实际的频率为1.19318MHz,实际的时间为54.92毫秒。
这就又引出了另外一个问题。为什么频率是1.19MHz呢?
如果采用这个频率,则2的16次方大概是3600秒,也就是一个小时(如果要精确一点,则是3599.59秒)。
为什么1个小时这么重要呢?
BIOS会每隔一个小时检查当前时间是否了午夜。如果过了,则它需要更新日期。而如果可以在一个16位计时器溢出时刚刚好可以做这个检查,就可以在BIOS固件里省下一部分空间。
另一个原因是,这个1.19MHz的频率,刚好是当时CPU主频(4.77MHz)的四分之一,这个频率是NTSC(National Television Standards Committee)彩色突发信号频率(Color Burst Frequency) 3.5MHz的4/3倍,有朋友会有疑问了,怎么和NTSC扯上关系了?
在当时,个人电脑会将他们的显卡输出发送给电视机,只有那些富家子弟家里才买得起显示器。而使用一个和视频信号相关联的定时器,就能在主板的设计上节省下几(十)块美元。
总结
有时候,技术并非第一位的,而是商业考虑决定了系统的设计。
在拓扑梅尔智慧办公平台(Topomel Box)的开发中,我花了很长一段时间来考虑这款软件到底应不应该设计为绿色免安装版本。
有一天,我将我自己代入到用户的角色中,瞬间就明白有些用户的感受了:”这破软件还要我安装? 赶紧起开!”
所以,当一款软件功能用起来还不赖,还免安装,想用随时下载,不想用就删,用户用起来就比较轻松了。
请猿友不要一心闷头搞技术,学点其他非技术类的东西,做东西还是需要以人为本,这将有助于你的事业成功。
最后
Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Why did Windows 95 run the timer at 55ms?》