реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> at91rm9200 и кэши
cf7k
сообщение Oct 7 2006, 17:15
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 14-03-06
Из: Санкт-Петербург
Пользователь №: 15 227



Вот тут задался странным вопросом про 91rm9200...
Ядро RISC; кэши подключены по-гарвардски; поиск TAG'ов в кэшах однотактный, конвейер хоть и есть, но он обычный... то есть никакой суперскалярности и спекулятивности... ничего сверхъестественного...

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

Это невнимательность разработчиков при правке доков после обнаружения бага в предыдущих версиях кристалла, моя невнимательность или просто грязный ПиАр?
Go to the top of the page
 
+Quote Post
cf7k
сообщение Oct 7 2006, 17:29
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 14-03-06
Из: Санкт-Петербург
Пользователь №: 15 227



Заранее извиняюсь, что проглючил при создании предыдущей темы.

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

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

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

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

Где я не дочитал?
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 7 2006, 17:45
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Дело в том, что термин "MIPS" - это не million instructions per second, а некий абстрактный параметр, характеризующий производительность системы. Для ядра ARM7 это значение равно 0.9 MIPS/MHz, для 9-го - 1.1 MIPS/MHz, за счет более длинного конвейера.
Go to the top of the page
 
+Quote Post
cf7k
сообщение Oct 7 2006, 19:17
Сообщение #4


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 14-03-06
Из: Санкт-Петербург
Пользователь №: 15 227



Цитата(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
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 7 2006, 22:05
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



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

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

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

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

Ну разумеется, не чисто smile.gif Попробуйте погуглить "VAX MIPS" и "Dhrystone".
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 7 2006, 22:25
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



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

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

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

Конечно, виртуальная адресация вызывает тормоза - за все надо платить.
Go to the top of the page
 
+Quote Post
cf7k
сообщение Oct 8 2006, 02:44
Сообщение #7


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 14-03-06
Из: Санкт-Петербург
Пользователь №: 15 227



Цитата(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?
Go to the top of the page
 
+Quote Post
cf7k
сообщение Oct 8 2006, 05:56
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 14-03-06
Из: Санкт-Петербург
Пользователь №: 15 227



Цитата(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
Go to the top of the page
 
+Quote Post
sff
сообщение Oct 8 2006, 22:07
Сообщение #9


Частый гость
**

Группа: Свой
Сообщений: 172
Регистрация: 23-04-06
Пользователь №: 16 404



Цитата(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".

подробнее здесь.
Go to the top of the page
 
+Quote Post
cf7k
сообщение Oct 9 2006, 11:35
Сообщение #10


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 14-03-06
Из: Санкт-Петербург
Пользователь №: 15 227



Цитата(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" - это фикция (в рекламных целях).
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 9 2006, 11:45
Сообщение #11


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Повторяю еще раз: "MIPS" - это не million instructions per second. Все, дальнейшие рассуждения о суперскалярности, спекулятивности и т.п. бессмысленны.
Go to the top of the page
 
+Quote Post
cf7k
сообщение Oct 9 2006, 12:37
Сообщение #12


Частый гость
**

Группа: Свой
Сообщений: 82
Регистрация: 14-03-06
Из: Санкт-Петербург
Пользователь №: 15 227



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

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

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

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

Итого для ARM9 (at91rm9200) на 180MHz получаю примерно 120 Million (армовских) IPS. (не самых лучших, а статистически для всего набора команд)

Сообщение отредактировал cf7k - Oct 9 2006, 12:57
Go to the top of the page
 
+Quote Post
aaarrr
сообщение Oct 9 2006, 12:48
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448



Цитата(cf7k @ Oct 9 2006, 16:37) *
О! Золотые слова! Правда звучит как-то вроде "тебе мало что ли?" или "люди делом занимаются, а ты философию разводишь".

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

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

Как правило, имеют в виду Dhrystone VAX MIPS, то есть отношение "производительности" исследуемой системы к VAX 11/780.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 02:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01445 секунд с 7
ELECTRONIX ©2004-2016