пятница, 23 октября 2009 г.

Почему в Windows 95 таймер работает с тиком в 55 мсек?

Это перевод Why did Windows 95 run the timer at 55ms? Автор: Реймонд Чен.

История частоты таймера в 55 мсек идёт от первого BIOS IBM PC.

Первый IBM PC использовал кристалл на 1.19 МГц, а 65536 циклов с частотой 1.19 МГц примерно равны 55 мсек - одному тику таймера (более точно: это было 1.19318 МГц и 54.92 мсек).

Но это просто сдвигает вопрос на другой уровень. Почему тогда 1.19... МГц?

С такой частотой 216 тиков примерно равны 3600 секундам, т.е. одному часу (если вы посчитаете, то это будет скорее 3599.59 секунд).

Что такого особенного в одном часе?

Раз в час BIOS проверяла не пересекло ли время полночь. Когда время пересекало полночь, BIOS нужно было увеличить дату. Делая ежечасную проверку в точности в момент переполнения 16-ти битного счётчика тиков, вы экономили несколько ценных байт в BIOS.

Другой причиной для частоты в 1.19 МГц было то, что это значение было в точности равно четверти частоты процессора, а именно: 4.77 МГц, что в свою очередь, было равно 4/3 частоты NTSC color burst равной 3.5 МГц. Вспомните, что в те дни персональные компьютеры подключались к телевизору. Мониторы были только для богатых детишек. Использование таймера, связанного с выходным видео сигналом, экономило несколько долларов на материнской плате.

У Calvin Hsia есть другой взгляд на историю частоты 4.77 МГц.

(Экономия на копейках была очень распространена в то время. У Apple ][ был собственный набор трюков экономии).

Комментариев нет:

Отправить комментарий

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.