Телесистемы
 Разработка, производство и продажа радиоэлектронной аппаратуры
На главную   | Карта сайта | Пишите нам | В избранное
Требуется программист в Зеленограде
- обработка данных с датчиков; ColdFire; 40 тыс.
e-mail:jobsmp@pochta.ru

Телесистемы | Электроника | Конференция «Микроконтроллеры и их применение»

Про мифический "1 MIPS/MHz"

Отправлено Токовый клещ (95.26.19.224) 11 марта 2010, г. 08:21



Хотя нигде не говорится об этом прямым текстом (интересы маркетинга превыше всего), но думаю, что каждый внимательный читатель даташитов МК прекрасно это понимает. Давайте обсудим это вслух. Подумаем, как можно сделать один мипс на мегагерц?

Первый способ очевиден, но не прост в реализации - распараллеливание выполнения инструкции на несколько конвейеров. Если инструкция выполняется N тактов и имеется N параллельных конвейеров, то получим честный 1 мипс/мгц. Но при этом получим хардварный геморрой:
а) с алгоритмом наилучшей состыковки двух идущих подряд инструкций для планирования их по конвейерам,
б) с отслеживанием ещё не сохранённых в память или регистры данных, только что записанных первой инструкцией и сразу следом читаемых второй инструкцией,
в) с выполнением условных переходов,
софтварный геморрой с непредсказуемостью времени выполнения кода,
маркетинговый геморрой чтобы убедить покупателей, что выполнять инструкцию за N тактов вместо одного такта - это вовсе не моветон.
репутационный геморрой извиняться за ошибки реализации, из-за трудноуловимости обнаруженные спустя год после начала выпуска чипа (вспомните многочисленные хождения пентиумов по граблям).
Короче, конкуренты съедят живьём раньше, чем наступит время успеха и коммерческой стабильности. Интел мог себе такое позволить, т.к. был фактически законодателем мод.

Второй способ - повысить частоту, но об этом никому не сказать. :) Как выполняется типичная однотактовая операция в аврках, напр., прибавить к регистру регистр? За три этапа: загружаем данные в алу, выполняем сложение и выгружаем результат в регистры. Может ли это выполниться за один такт? :) Это выполняется за три такта. Но это "другие" такты. Такты, про которые говорят в ДШ - это "флешёвые" такты, соответствующие скорости извлечения инструкций из памяти программ. Но остальная, "числодробительная" часть МК может работать в три раза быстрее. И она именно так и работает. Но "скрытно" - в ДШ об этом ни слова, только намекающая на истину временная диаграмма где-то в начале документа. Эти утроенные такты не афишируются. Однако знание об этих "скрытых" тактах позволяет объяснить одну странность аврок. Зачем, скажите пожалуйста, у ядра с "Fully Static Operation" в ДШ стоит ограничение на максимальную разницу длин соседних периодов внешней тактовой частоты в 2% ? Если оно fully static, то ядру должно быть пох. Разгадка проста - внутри аврок стоит скрытая маркетингом PLL-ка, утраивающая "флешёвую" частоту для работы алу. Не верите? Проведите эксперимент: тактируйте аврку сначала долго и стабильно 12 МГц, а потом резко (в течение одного такта) измените внешнюю частоту на 20 МГц. 100%-но словите глюк при выполнении следующей инструкции - её фаза сохранения результатов вычислений будет запорчена внезапно начавшимся следующим тактом.

А реклама атмела похожа на сказку - у микрочипа 4 такта на команду, у нас - 1 такт. Ловко вешают лапшу!
Однако, несмотря на эту рекламную ложь, архитектура с утраиванием тактов, конечно, предпочтительнее - тут спору нет.


Составить ответ | Вернуться на конференцию

Ответы


Отправка ответа
Имя*: 
Пароль: 
E-mail: 
Тема*:

Сообщение:

Ссылка на URL: 
URL изображения: 

если вы незарегистрированный на форуме пользователь, то
для успешного добавления сообщения заполните поле, как указано ниже:
прибавьте тройку к двум:

Перейти к списку ответов | Конференция | Раздел "Электроника" | Главная страница | Карта сайта

Rambler's Top100 Рейтинг@Mail.ru
 
Web telesys.ru