在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?》