Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: at91rm9200 и кэши
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
cf7k
Вот тут задался странным вопросом про 91rm9200...
Ядро RISC; кэши подключены по-гарвардски; поиск TAG'ов в кэшах однотактный, конвейер хоть и есть, но он обычный... то есть никакой суперскалярности и спекулятивности... ничего сверхъестественного...

А вот на первой странице официальной доки (и далее во всех рекламах) "200 MIPS at 180 MHz"
Где же исполнение более одной

Это невнимательность разработчиков при правке доков после обнаружения бага в предыдущих версиях кристалла, моя невнимательность или просто грязный ПиАр?
cf7k
Заранее извиняюсь, что проглючил при создании предыдущей темы.

Вопрос, собственно, касается времянок кэшей при использовании MMU.

В доке ddi0151c_920t_trm.pdf про ICache сказано:

All instruction accesses are subject to MMU permission and translation checks.

Рассуждая логически можно предположить, что если данные попали в кэш (путем просмотров таблиц сегментов/страниц) , то доступ к ним должен быть однотактный..., но как же permission and translation checks? ведь на них тоже вроде бы надо время.... Меня почему-то гложут сомнения, что виртуальная адресация должна вызывать тормоза... (даже если в кэш подгружены дескрипторы сегментов/страниц)

Где я не дочитал?
aaarrr
Дело в том, что термин "MIPS" - это не million instructions per second, а некий абстрактный параметр, характеризующий производительность системы. Для ядра ARM7 это значение равно 0.9 MIPS/MHz, для 9-го - 1.1 MIPS/MHz, за счет более длинного конвейера.
cf7k
Цитата(aaarrr @ Oct 7 2006, 21:45) *
Дело в том, что термин "MIPS" - это не million instructions per second, а некий абстрактный параметр, характеризующий производительность системы. Для ядра ARM7 это значение равно 0.9 MIPS/MHz, для 9-го - 1.1 MIPS/MHz, за счет более длинного конвейера.


Длина конвейера тут влиять не должна: за 1 такт на каждой ступени конвейера обрабатывается только одна инструкция: на этапе декодирования - декодируется одна инструкция, на этапе выполнения - выполняется одна, на этапе обращения к памяти - одно чтение или одна запись, на вход поступает не более одной инструкции за такт... миллион тактов = миллион инструкций (в лучшем случае).

А про квазиMIPS - это даже интересно... Вроде дело не в измерении скорости решеиия конкретной задачи и сравнеии с чем-то, а именно в инструкциях данного реализованного набора команд... Где бы найти источник который бы пролил свет на сию арифметику?

Что-то здесь не чисто... wink.gif
aaarrr
Цитата(cf7k @ Oct 7 2006, 23:17) *
Длина конвейера тут влиять не должна: за 1 такт на каждой ступени конвейера обрабатывается только одна инструкция: на этапе декодирования - декодируется одна инструкция, на этапе выполнения - выполняется одна, на этапе обращения к памяти - одно чтение или одна запись, на вход поступает не более одной инструкции за такт... миллион тактов = миллион инструкций (в лучшем случае).

Более длинный конвейер позволяет несколько "размыть" операции с памятью. Хотя, конечно, дело не только в нем. Вот небольшой, но любопытный документ на тему отличия 7-х и 9-х ядер.

Цитата(cf7k @ Oct 7 2006, 23:17) *
А про квазиMIPS - это даже интересно... Вроде дело не в измерении скорости решеиия конкретной задачи и сравнеии с чем-то, а именно в инструкциях данного реализованного набора команд... Где бы найти источник который бы пролил свет на сию арифметику?

Что-то здесь не чисто... wink.gif

Ну разумеется, не чисто smile.gif Попробуйте погуглить "VAX MIPS" и "Dhrystone".
aaarrr
Цитата(cf7k @ Oct 7 2006, 21:29) *
Рассуждая логически можно предположить, что если данные попали в кэш (путем просмотров таблиц сегментов/страниц) , то доступ к ним должен быть однотактный..., но как же permission and translation checks? ведь на них тоже вроде бы надо время.... Меня почему-то гложут сомнения, что виртуальная адресация должна вызывать тормоза... (даже если в кэш подгружены дескрипторы сегментов/страниц)

Где я не дочитал?

Данные просмотра translation table буферизируются в Translation Lookaside Buffers (TLBs), что позволяет сократить количество проходов по таблице.

Конечно, виртуальная адресация вызывает тормоза - за все надо платить.
cf7k
Цитата(aaarrr @ Oct 8 2006, 02:05) *
Более длинный конвейер позволяет несколько "размыть" операции с памятью. Хотя, конечно, дело не только в нем. Вот небольшой, но любопытный документ на тему отличия 7-х и 9-х ядер.


Спасибо. Ознакомился. Из того что не знал - это то, что результат выполнения инструкции сразу становится доступен команде на входе конвейера параллельно стадии "запись регистра-чтение регистра".
Наверное это и имелось в виду под "размыть операции с памятью". Но и тут я не согласен wink.gif Все предельно четко и никакого размытия - операции с памятью - на 4й ступени конвейера (шут с регистрами); а количество ступеней всего лишь позволяет раскидать транзисторы в конвейере так, чтобы время распространения сигнала на всех стадиях было примерно одинаково - это всего лишь аппаратная оптимизация для повышения частоты такта.

Цитата(aaarrr @ Oct 8 2006, 02:05) *
Цитата(cf7k @ Oct 7 2006, 23:17) *


Что-то здесь не чисто... wink.gif

Ну разумеется, не чисто smile.gif Попробуйте погуглить "VAX MIPS" и "Dhrystone".


А насколько не чисто.... о-го-го!
То ли наши переводчики страдали избытком энтузиазма и очень хотели привнести в перевод что-то свое, то ли это грязный маркетинговый ПиАр, тянущийся с тех времен когда решили заплевать старую DECовскую архитектуру и сказать что новая IBM'овская- круче.

Размышления: в оригинале MIPS - million instructions per second. В переводе "отношение числа команд в программе ко времени ее выполнения" и далее запудривание мозгов(ну это не только в переводе) о сложности сравнения архитектур, на разных частотах да при разной функциональной насыщенности инструкций... в общем замена причины следствием. А что надо: количество инструкций в еденицу времени на данной архитектуре на данной частоте, и без сравнений с другими числами. ( а то еще не определив до конда смысл числа - побыстрее сравнить числа. хе-хе. торгаши smile.gif )

Пример: возьмем килограм самых лучших инструкций и запустим на исполнение на архитектуре A (ARM9) на частоте F (180MHz). smile.gif ("лучших" - самых быстрых, оптимизируем без интерлоков, кэш-промахов, все в кэше и прочее). Как ни старайся - самое лучшее что можно выжать - 1 IPC. Возьмем 180 000 000 трактов - получим 180 MIPS. Это собствеено то, с чего я начал возмущаться. biggrin.gif

Теперь всякие Dhrystone и более высокоуровневые синтетические тесты:
Dhrystone -> разбавим наш килограм самых лучших - не самыми лучшими, но не менее полезными. Цифра меньше, но появляется ценность этой цифры для сравнения с другими цифрами.
Более высокоуровневые тесты задаются вопросом "не сколько инструкций надо для решения какой-то задачи, а сколько времени будут выполняться необходимые для решения задачи инструкции (для каждой архитектуры свои и свое количество) при способностях сравниваемых архитектур тактироваться максимальной для них частотой". Тут весь смысл в сравнении (спору нет).

Итого: если MIPS - это именно MIPS, то как at91RM9200 может развивать 200 MIPS на 180MHz?
cf7k
Цитата(aaarrr @ Oct 8 2006, 02:25) *
Данные просмотра translation table буферизируются в Translation Lookaside Buffers (TLBs), что позволяет сократить количество проходов по таблице.

Конечно, виртуальная адресация вызывает тормоза - за все надо платить.


О! допер!. в TLB "кэшируются" дескрипторы секций/страниц. А меня почему-то тянуло кэшировать права на каждую команду smile.gif Ну тогда тормоза случаются только при первом обращении к адресу, принадлежащему области памяти, дескриптор которой не прокэшироан в TLB; а при остальных обращениях к это



Цитата(aaarrr @ Oct 8 2006, 02:25) *
Данные просмотра translation table буферизируются в Translation Lookaside Buffers (TLBs), что позволяет сократить количество проходов по таблице.

Конечно, виртуальная адресация вызывает тормоза - за все надо платить.


О! допер!. в TLB "кэшируются" дескрипторы секций/страниц. А меня почему-то тянуло кэшировать права на каждую команду smile.gif Ну тогда тормоза случаются только при первом обращении к адресу, принадлежащему области памяти, дескриптор которой не прокэшироан в TLB; а при остальных обращениях к этой области памяти ловятся только кэш-промахи. Теперь нет преград для использования ММУ. w00t.gif
sff
Цитата(cf7k @ Oct 8 2006, 06:44) *
Размышления: в оригинале MIPS - million instructions per second. В переводе "отношение числа команд в программе ко времени ее выполнения" и далее запудривание мозгов(ну это не только в переводе)
...
Итого: если MIPS - это именно MIPS, то как at91RM9200 может развивать 200 MIPS на 180MHz?

Ну не все MIPS одинково полезны. Вообще MIPS и "Meaningless Indication of Processor Speed" / "Meaningless Information on Performance for Salespeople" / "Meaningless Integer Performance Spec".

подробнее здесь.
cf7k
Цитата(sff @ Oct 9 2006, 02:07) *
Ну не все MIPS одинково полезны. Вообще MIPS и "Meaningless Indication of Processor Speed" / "Meaningless Information on Performance for Salespeople" / "Meaningless Integer Performance Spec".


Здесь обязательно поставить смайлик. smile.gif

Цитата(sff @ Oct 9 2006, 02:07) *
подробнее здесь.


А по табличке из википедии можно лишь делать предположения о суперскалярности и спекулятивности некоторых приведенных реализаций архитектур. В ARM920T нет ни малейшего намека на какую-либо параллельность.

Сдается мне что все-таки "200MIPS at 180MHz" - это фикция (в рекламных целях).
aaarrr
Повторяю еще раз: "MIPS" - это не million instructions per second. Все, дальнейшие рассуждения о суперскалярности, спекулятивности и т.п. бессмысленны.
cf7k
Цитата(aaarrr @ Oct 9 2006, 15:45) *
Повторяю еще раз: "MIPS" - это не million instructions per second. Все, дальнейшие рассуждения о суперскалярности, спекулятивности и т.п. бессмысленны.

О! Золотые слова! Правда звучит как-то вроде "тебе мало что ли?" или "люди делом занимаются, а ты философию разводишь".

Тогда вопрос: А что такое MIPS? (в рамках рассматриваемой темы). Ну или перефразировав "Сколько МIPS (в первоначальном смысле) выдает at9rm9200 на частоте 180MHz?

Искомый ответ тут.

Итого для ARM9 (at91rm9200) на 180MHz получаю примерно 120 Million (армовских) IPS. (не самых лучших, а статистически для всего набора команд)
aaarrr
Цитата(cf7k @ Oct 9 2006, 16:37) *
О! Золотые слова! Правда звучит как-то вроде "тебе мало что ли?" или "люди делом занимаются, а ты философию разводишь".

Извините, если звучит резковато. Просто я считаю, что производительность системы можно оценивать только в контексте задачи.

Цитата(cf7k @ Oct 9 2006, 16:37) *
Тогда вопрос: А что такое MIPS?

Как правило, имеют в виду Dhrystone VAX MIPS, то есть отношение "производительности" исследуемой системы к VAX 11/780.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.