|
Описание отличий семейства ARM7, 720, 922, 926 и т.д. |
|
|
3 страниц
1 2 3 >
|
 |
Ответов
(1 - 42)
|
Mar 26 2009, 17:41
|

Профессионал
    
Группа: Модераторы
Сообщений: 1 951
Регистрация: 27-08-04
Из: Санкт-Петербург
Пользователь №: 555

|
C точки зрения обычного программиста ядра ARM7 и ARM9 очень похожи, в ARM9 побольше команд (например есть очень полезные BLX - позволяют не извращаться с вызовом процедур в разных форматах ARM, THUMB, загрузка с перестановкой байт...) о всем этом можно узнать из одного документа ARM Arhitecture Referrence Manual, в каждой команде указано для какой версии ядра она работает - ARM7 это v4, а ARM9 это v5. Но с этим всем компилер прекрасно справляется (если писать на С ) Есть еще некоторые системные отличия внутреннего устройства, кеши, шины данных, но на программу это влияет только с точки зрения быстродействия.
Вот новая архитектура v7 ( Cortex-M3 например) вот она сильно отличается! Прерывания, системные регистры совсем другие. Но этой архитектуры даже в АRM Arhitecture Referrence Manual нету у нее отдельный.
АRM Arhitecture Referrence Manual можно с ARM скачать (нужна регистрация ) или в местных закромах был!
|
|
|
|
|
Mar 26 2009, 18:41
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата Some chips, such as the Cortex-M3, support only the Thumb-2 instruction set. Хмм. Я раньше думал, что он оба режима поддерживает. Такую ещё ссылку нарыл http://www.chipnews.ru/html.cgi/arhiv/07_07/stat_1.htmЦитата(aaarrr) Только в тех ARM9, что имеют архитектуру v5TEJ (ARM926, 946 и т.д.), у остальных (ARM920, 922, 940) ровным счетом тот же набор команд, что и у ARM7TDMI. Судя по википедии некоторые 9-ые ничем от 7-ых ни отличаются. Кроме 5-стадийности. Я так понимаю все 9-ые имеют гарвардскую архитектуру и только поэтому отделены от 7-ых ?
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Mar 27 2009, 00:40
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(aaarrr @ Mar 26 2009, 20:47)  но все имеют гарвардскую архитектуру. Как вы отличаете архитектуры. Всмысле, что в ARM9 более или менее гарвардского чем в ARM7? Цитата Я так понимаю все 9-ые имеют гарвардскую архитектуру и только поэтому отделены от 7-ых ? Думаю разработчики ARM вообще не заморачиваются такой ерундой как разделение архитектур на гарвард, нейман и т.д. Они просто делают свою работу. Что же касается вашего вопроса, разве отличий с wiki мало? : - длина конвеера - раздельный кеш
|
|
|
|
|
Mar 27 2009, 08:27
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(defunct @ Mar 27 2009, 05:40)  Как вы отличаете архитектуры. Всмысле, что в ARM9 более или менее гарвардского чем в ARM7? Она влияет на MIPS/Mhz. Цитата Думаю разработчики ARM вообще не заморачиваются такой ерундой как разделение архитектур на гарвард, нейман и т.д. Они просто делают свою работу.
Что же касается вашего вопроса, разве отличий с wiki мало? : - длина конвеера - раздельный кеш С этим как раз неопределённо. Конвеер у 9-ого длиннее всегда, но это явно сделано из-за гарварда. А кэша иногда вообще нет, судя по той же вики.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Mar 27 2009, 12:09
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(defunct @ Mar 27 2009, 16:43)  Этого мало, т.к. память лежит на общей шине и адресное пространство одно - общее и для кода и для данных. Как раз общее адресное пространство ни о чём не говорит ни с точки зрения программиста, ни с точки зрения архитектуры. У LPC23,24 рама поделена на несколько независимых блоков, к которым могут иметь одновременный доступ несколько разных устройств. Наример USB писать через DMA в свой блок и проц читать данные из другого блока. Цитата Модель программиста ARM7/ARM9 неизменна. В то время как для AVR - который классический гарвард, модель программиста значительно отличается от ARM, как раз из-за того, что код и данные лежат в разных адресных пространствах по одинаковым адресам. AVR в этом плане "убогий" гарвард. Либо "гарвард" в чистом смысле (аля AVR) убогая идея. Так как не позволяет выполнять код из рамы. И ещё ограничивает командам доступ к разным адресным простанствам. ИМХО в плане архитектуры заметное улучшение от ARM7 к следующей идёт по цепочке - гарвард - конвейер - кэш - ну и далее. Хотя чего-то принципиального до сих пор не пойму. Эти улучшения можно было бы обзывать 750, 760 , 770 и так далее архитектурами.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Mar 27 2009, 12:14
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(aaarrr @ Mar 27 2009, 14:03)  Да, надо было с самого начало добавить приставку "псевдо". Память вовсе не обязательно сидит на общей шине - TCM, например, подключаются отдельно. Не суть важно. Есть хоть какой-то адресуемый участок памяти в котором располагается код, и куда по определению нельзя добраться как к блоку данных (прочитать/изменить)? Все эти доп шины - это так мелкие ускоряющие фичи, не меняющие архитектуру в корне. Цитата(GetSmart @ Mar 27 2009, 14:09)  AVR в этом плане "убогий" гарвард. Либо "гарвард" в чистом смысле (аля AVR) убогая идея. Так как не позволяет выполнять код из рамы. И ещё ограничивает командам доступ к разным адресным простанствам. Ну если поставить заместо Flash RAM - то нет проблем можно будет модифицировать код! Но в этом и есть разительное отличие архитектур. Низя адресовать всю память линейно!
|
|
|
|
|
Mar 27 2009, 12:37
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(defunct @ Mar 27 2009, 15:30)  Раздельные шины применительно к общей памяти это просто ускоритель. Раздельные шины в комплексе с раздельной памятью - это гарвард. Хорошо, а как назовем раздельные шины с раздельным кэшем? И чем это решение будет хуже п.2? Цитата(defunct @ Mar 27 2009, 15:30)  Прилепите к шине инструкций непосредственно ПП, получим гарвардскую систему. В случае с TCM дело именно так и обстоит.
|
|
|
|
|
Mar 27 2009, 12:56
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(aaarrr @ Mar 27 2009, 14:37)  Хорошо, а как назовем раздельные шины с раздельным кэшем? Intel называет это Dual Independent Bus (DIB) и Separate code and data caches. Т.е. своими именами без подведения под какую-то черту. Цитата И чем это решение будет хуже п.2? 1. Ресурс(память) один, а шины две. Кеш не панацея всю память на разместит. Ресурс все равно надо делить - а значит меньше производительность. 2. Сложнее в реализации - т.к. для дележки требуется арбитраж. 3. Раз есть арбитраж получаем - непрогнозированную латентность выборки данных и команд.
|
|
|
|
|
Mar 27 2009, 13:02
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(defunct @ Mar 27 2009, 15:56)  1. Ресурс(память) один, а шины две. Ресурс надо делить - меньше производительность. Производительность ARM926EJ при работе из TCM (честный Гарвард в вашей интерпретации) и из кэша практически одинаковая (кэш немного быстрее). Цитата(defunct @ Mar 27 2009, 15:56)  1. Ресурс(память) один, а шины две. Ресурс Кеш не панацея всю память на разместит. Вам часто приходится работать со всей памятью? Не панацея, но и не от безделья придуман. Цитата(defunct @ Mar 27 2009, 15:56)  2. Сложнее в реализация - т.к. для дележки требуется арбитраж. 3. Раз есть арбитраж получаем - не прогнозированую латентность выборки данных и команд. Если уж есть кэш, то эти два пункта существуют по определению.
|
|
|
|
|
Mar 27 2009, 13:04
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(defunct @ Mar 27 2009, 05:40)  Как вы отличаете архитектуры. Всмысле, что в ARM9 более или менее гарвардского чем в ARM7? .... Думаю разработчики ARM вообще не заморачиваются такой ерундой как разделение архитектур на гарвард, нейман и т.д. Они просто делают свою работу. Вспомнил. Читая про Cortex-M3 сразу наткнулся на описание кардинального отличия от ARM7 - это гравардская архитектура, хотя адресное пространство общее. Цитата(KRS @ Mar 26 2009, 22:41)  о всем этом можно узнать из одного документа ARM Arhitecture Referrence Manual, в каждой команде указано для какой версии ядра она работает - ARM7 это v4, а ARM9 это v5. Но с этим всем компилер прекрасно справляется (если писать на С ) Спасибо. Скачал из сети (в вики кажется ссылка) под названием 14128.pdf
Сообщение отредактировал GetSmart - Mar 27 2009, 13:55
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Mar 27 2009, 13:21
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(aaarrr @ Mar 27 2009, 15:02)  Производительность ARM926EJ при работе из TCM (честный Гарвард в вашей интерпритации) и из кэша практически одинаковая (кэш немного быстрее). Кто и как измерял? Результат тут будет сильно зависеть от множества параметров - таких как размер кода, количество branch инструкций, объем данных обрабатываемых программой и их размещение. Не сомневаюсь какой-то крайний случай типа: while( temp--); может работать из кеш памяти быстрее. Цитата(aaarrr @ Mar 27 2009, 15:02)  Вам часто приходится работать со всей памятью? Не панацея, но и не от безделья придуман. В пределах работы программы, да - часто вся память используется. Другой вопрос, что на конкретном временном интервале выполняющем какой-то конкретный алгоритм/обработку чего-то, задействовано немного памяти, и на этом получается эффект от кеша. Правда данные которые надо обрабатывать разбросаны по разным участкам памяти, и часто получены через DMA, т.е. львиная доля данных требует invalidate изначально, либо лежит в некешируемом регионе памяти.
|
|
|
|
|
Mar 27 2009, 14:21
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(defunct @ Mar 27 2009, 18:44)  ... т.е. к конкретным системам на ARM9 ядре слово Гарвардская Архитектура может не иметь никакого отношения. Если можно, приведите конкретные примеры ARM9 без гарварда. Цитата(defunct @ Mar 27 2009, 19:04)  IMHO, если планируете работать с конкретными готовыми МК, то лучше не на ядро смотреть, а на то, что на нем слеплено. Я вообще-то также думаю. К примеру фича NXP с 128 битной флэш могла бы претендовать на новое семейство ARM  То есть она вполне сопоставима с улучшениями вроде гарварда и 5-стадийности. Просто меня мой шеф напряг своей новящевой идеей про ARM9. Как и все "потребители" (в противовес разработчикам) он искренне верит, что ARM9 в 3-5 раз круче ARM7. Именно семейство круче. То есть если у проца есть "лейбл" ARM9, то это то, что надо. К примеру он предлагает закладываться на LPC31xx и LPC32xx, которые даже внутреннего флэша не имеют. У меня же есть большие сомнения что этот кастрированный ARM9 будет выполнять большой линейный код (без циклов), находящийся во внешней 32 битной флэш быстрее к примеру Cortex-M3 с внутренней флэш. То, что определёнными усилиями можно заставить выполняться небольшую часть кода (десятки кб) на полной частоте проца (266 МГц) конечно я понимаю. Но остальная бОльшая часть кода (сотни кб) будет выполняться даже медленней (в 2 и более раз) чем даже на LPC21/22/23/24. Я прав?
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Mar 27 2009, 14:57
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(aaarrr @ Mar 27 2009, 19:38)  Где источник торможения? Как это где. Во внешней флэш. 32 бита на 25 МГц допустим. То есть 25 млн. ARM инструкций в секунду. Цитата Сотни килобайт линейного кода - это что-то из области фантастики. Код не обязательно линейный и непрерывный. Ну допустим 1000 процедур почти без циклов, исполняющихся друг за другом.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Mar 27 2009, 15:10
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(GetSmart @ Mar 27 2009, 16:21)  Если можно, приведите конкретные примеры ARM9 без гарварда. Мне проще привести с классическим гарвардом - STR91x. Все остальное, что строится на кеше и общей внешней SDRAM - это гибриды. Чем такая система отличается от системы на базе Intel P? да ни чем. А почему тогда IP не гарвард? Цитата Просто меня мой шеф напряг своей новящевой идеей про ARM9. Как и все "потребители" (в противовес разработчикам) он искренне верит, что ARM9 в 3-5 раз круче ARM7. Именно семейство круче. Сравните STR91x и high-end ARM7 (разница там в районе ~40%). И покажите шефу эту разницу. Цитата То есть если у проца есть "лейбл" ARM9, то это то, что надо. Если у проца есть лейб ARM9, то можно расчитывать на тактовую много больше 100Mhz, ARM7 на такой частоте не найти. Цитата меня же есть большие сомнения, что этот кастрированный ARM9 будет выполнять большой линейный код (без циклов), находящийся во внешней 32 битной флэш быстрее к примеру Cortex-M3 с внутренней флэш. Ну скопируйте содержимое флеш в SDRAM и будет быстро.
|
|
|
|
|
Mar 27 2009, 15:29
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(defunct @ Mar 27 2009, 20:10)  Мне проще привести с классическим гарвардом - STR91x. Вы вопрос изначальный помните? Я спрашивал есть ли ARM9 без гарварда и является ли это основным отличием от ARM7. Цитата Все остальное, что строится на кеше и общей внешней SDRAM - это гибриды. Чем такая система отличается от системы на базе Intel P? да ни чем. А почему тогда IP не гарвард? Может и гарвард. Может из-за своей давней истории развития от 8086 к более новым. Хотя пример с ARMом вроде абсолютно аналогичный, но там вроде никто не скрывает и не спорит про гарвард. Цитата Сравните STR91x и high-end ARM7 (разница там в районе ~40%). И покажите шефу эту разницу. 40% попугаев? Если сравнивать два конкретных проца, то у каждого есть своя предельная тактовая, которая может перевесить скорость архитектуры конкурента. Цитата Если у проца есть лейб ARM9, то можно расчитывать на тактовую много больше 100Mhz, ARM7 на такой частоте не найти. Это уже какая-то аномалия. Статистически - да, но почему - хз. Можно предположить, что так обстоят дела только из-за небольшого увеличения быстродействия ARM9 (из-за двух шин) и если уж делать новые процы, то со всеми наваротами, увеличивающими быстродействие. Ну и из-за маркетинговых соображений (ARM9 больше нравится потреблятелям). Цитата Ну скопируйте содержимое флеш в SDRAM и будет быстро. Это я знаю. Спрашиваю пока о флэш. Цитата(aaarrr @ Mar 27 2009, 20:00)  1000 разных процедур - тоже фантастика. 100 процедур по килобайту устроит?  Я клоню к тому, что все они в кэш не влезут. А так как они вызываются по очереди, то когда исполнение вернётся к первой, то она из кэша уже сотрётся.
Сообщение отредактировал GetSmart - Mar 27 2009, 15:34
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Mar 27 2009, 16:12
|
Гуру
     
Группа: Свой
Сообщений: 10 713
Регистрация: 11-12-04
Пользователь №: 1 448

|
Цитата(defunct @ Mar 27 2009, 19:07)  А объем TCM там (968) какой? На усмотрение производителя кристалла. В данном случае довольно приличный - 16+16. Цитата(GetSmart @ Mar 27 2009, 19:09)  Прочитал поподробнее. Про кэш оказалось не всё ясно. Что такое TCM ? TCM - быстрые раздельные для кода и данных блоки памяти. Вешаются непосредственно на ядро.
|
|
|
|
|
Mar 27 2009, 16:24
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Цитата(aaarrr @ Mar 27 2009, 21:12)  TCM - быстрые раздельные для кода и данных блоки памяти. Вешаются непосредственно на ядро. Ручной кэшазаменитель?  Для данных только непонятно зачем. Ведь внутренняя рама и есть быстрый блок памяти данных. Сделали бы тогда 32К TCM только для кода, а данные в обычную раму можно писать параллельно с выборкой кода. Вобщем склоняюсь к мнению, что основное отличие 9-ых от 7-ых это конвейер, который для программера имеет самое незаметное значение. 10-ый от 9-ого тоже конвейером отличается.
Сообщение отредактировал GetSmart - Mar 27 2009, 16:26
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Mar 27 2009, 17:49
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Цитата(GetSmart @ Mar 27 2009, 17:29)  Вы вопрос изначальный помните? Я спрашивал есть ли ARM9 без гарварда и является ли это основным отличием от ARM7. ARM9TDMI, ни TCM, ни кеш не предусмотрен. Все в руках разработчика МК, как подключит так и будет. Можно немного перефразировать вопрос? Является ли наличие двух шин основным отличием от ARM7? Да, по крайней мере одним из основных отличий является.
|
|
|
|
|
Mar 27 2009, 20:06
|
.
     
Группа: Участник
Сообщений: 4 005
Регистрация: 3-05-06
Из: Россия
Пользователь №: 16 753

|
Подводя (промежуточный?) итог, я выяснил, что ARM7 отличается от ARM9 обязательным наличием по крайней мере двух раздельных внутренних шин для кода и данных, и усложнением конвейера до 5 стадий. Всё остальное опционально. Для программиста обе этих доработки на 99% незаметны. Программист может смело считать, что он работает с ARM7, имеющим кэш, MMU, VFP и прочие фичи не как усовершенствование ядра, а как дополнительную перифирию (от NXP к примеру). И вообще, выбирая ARM-процессор стоит обращать не на цифру 7,9,10 и тд, а на конкретные фичи. Причём фичи конкретного проца конкретного производителя (не важно какой версии ARM) могут иметь куда более важное значение, как например наличие внутреннего флэша, тактовая частота, размер кэша и размер внутренней рамы. Они могут повлиять на производительность куда больше чем просто двойная шина и конвейер. Цитата(DRUID3) ...а еще в ARM9 часто присутствует float-coprocessor на борту. А это уже очень серьезно - от исходников которые не надо перерабатывать (скорость разработки), до числового DR (принципиальная взможность чего либо соорудит, для DSP например)... Это так, к слову... Только для DSP приминений. Иначе от него пользы как собаке пятая нога.
--------------------
Заблуждаться - Ваше законное право :-)
|
|
|
|
|
Mar 28 2009, 01:30
|

кекс
     
Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326

|
Кстати, вот хорошая ссылка, по вопросу насчет архитектуры ARM: Цитата Прочие модификации Существуют гибридные модификации архитектур, сочетающие некоторые достоинства как Гарвардской, так и фон-Неймановской архитектур. Например, современные варианты процессоров ARM, как правило, обладают раздельной кэш-памятью для инструкций и данных, что позволяет им за один такт получать одновременно как команду, так и данные для её выполнения, то есть процессорное ядро, формально, является гарвардским, но с программной точки зрения выглядит как фон-Неймановское, что упрощает написание программ. Обычно в данных процессорах одна шина используется и для передачи команд, и для передачи данных, что упрощает конструкцию системы. Современные варианты таких процессоров могут иногда содержать встроенные контроллеры сразу нескольких разнотипных шин для работы с различными типами памяти — например, DDR RAM и Flash. Тем не менее и в этом случае шины, как правило, используются и для передачи команд, и для передачи данных без разделения, что делает данные процессоры еще более близкими к фон-Неймановской архитектуре при сохранении плюсов Гарвардской архитектуры.
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|