Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Описание отличий семейства ARM7, 720, 922, 926 и т.д.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
GetSmart
Кто подскажет ссылку или PDF с заданной темой. Хорошо знаком с ARM7TDMI. Собираюсь подсесть на ARM9 и хотя бы познакомиться с 10 и 11. Но их так много расплодилось, что я в замешательстве.

Пожалуйста без ответов типа ищи на сайте arm.com. Лучше подскажите имя конкретного файла как например arm7tdmi.pdf. Нужно описание именно отличий семейств, а не полное описание каждого семейства, при том, что в них 95% может совпадать.
aaarrr
Цитата(GetSmart @ Mar 26 2009, 19:30) *
Пожалуйста без ответов типа ищи на сайте arm.com

А такой ответ устроит? Хотя arm.com - это единственно правильный вариант.
KRS
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 скачать (нужна регистрация ) или в местных закромах был!
aaarrr
Цитата(KRS @ Mar 26 2009, 20:41) *
C точки зрения обычного программиста ядра ARM7 и ARM9 очень похожи, в ARM9 побольше команд...

Только в тех ARM9, что имеют архитектуру v5TEJ (ARM926, 946 и т.д.), у остальных (ARM920, 922, 940) ровным счетом тот же набор команд, что и у ARM7TDMI.
GetSmart
Цитата
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-ых ?
aaarrr
По системе команд некоторые 9-е ничем не отличаются от 7-х, но все имеют гарвардскую архитектуру.
defunct
Цитата(aaarrr @ Mar 26 2009, 20:47) *
но все имеют гарвардскую архитектуру.

Как вы отличаете архитектуры. Всмысле, что в ARM9 более или менее гарвардского чем в ARM7?

Цитата
Я так понимаю все 9-ые имеют гарвардскую архитектуру и только поэтому отделены от 7-ых ?

Думаю разработчики ARM вообще не заморачиваются такой ерундой как разделение архитектур на гарвард, нейман и т.д. Они просто делают свою работу.

Что же касается вашего вопроса, разве отличий с wiki мало? :
- длина конвеера
- раздельный кеш
GetSmart
Цитата(defunct @ Mar 27 2009, 05:40) *
Как вы отличаете архитектуры. Всмысле, что в ARM9 более или менее гарвардского чем в ARM7?

Она влияет на MIPS/Mhz.

Цитата
Думаю разработчики ARM вообще не заморачиваются такой ерундой как разделение архитектур на гарвард, нейман и т.д. Они просто делают свою работу.

Что же касается вашего вопроса, разве отличий с wiki мало? :
- длина конвеера
- раздельный кеш

С этим как раз неопределённо. Конвеер у 9-ого длиннее всегда, но это явно сделано из-за гарварда. А кэша иногда вообще нет, судя по той же вики.
aaarrr
Цитата(defunct @ Mar 27 2009, 03:40) *
Всмысле, что в ARM9 более или менее гарвардского чем в ARM7?

Раздельные шины инструкций/данных у ядра.
defunct
Цитата(aaarrr @ Mar 27 2009, 11:42) *
Раздельные шины инструкций/данных у ядра.

Этого мало, т.к. память лежит на общей шине и адресное пространство одно - общее и для кода и для данных.
В Intel Pentium есть DIB и раздельный кеш, это тоже гарвард?
Модель программиста ARM7/ARM9 неизменна. В то время как для AVR - который классический гарвард, модель программиста значительно отличается от ARM, как раз из-за того, что код и данные лежат в разных адресных пространствах по одинаковым адресам.
aaarrr
Цитата(defunct @ Mar 27 2009, 14:43) *
Этого мало, т.к. память лежит на общей шине и адресное пространство одно - общее и для кода и для данных.

Да, надо было с самого начало добавить приставку "псевдо".
Память вовсе не обязательно сидит на общей шине - TCM, например, подключаются отдельно.
GetSmart
Цитата(defunct @ Mar 27 2009, 16:43) *
Этого мало, т.к. память лежит на общей шине и адресное пространство одно - общее и для кода и для данных.

Как раз общее адресное пространство ни о чём не говорит ни с точки зрения программиста, ни с точки зрения архитектуры. У LPC23,24 рама поделена на несколько независимых блоков, к которым могут иметь одновременный доступ несколько разных устройств. Наример USB писать через DMA в свой блок и проц читать данные из другого блока.

Цитата
Модель программиста ARM7/ARM9 неизменна. В то время как для AVR - который классический гарвард, модель программиста значительно отличается от ARM, как раз из-за того, что код и данные лежат в разных адресных пространствах по одинаковым адресам.

AVR в этом плане "убогий" гарвард. Либо "гарвард" в чистом смысле (аля AVR) убогая идея. Так как не позволяет выполнять код из рамы. И ещё ограничивает командам доступ к разным адресным простанствам.

ИМХО в плане архитектуры заметное улучшение от ARM7 к следующей идёт по цепочке - гарвард - конвейер - кэш - ну и далее. Хотя чего-то принципиального до сих пор не пойму. Эти улучшения можно было бы обзывать 750, 760 , 770 и так далее архитектурами.
defunct
Цитата(aaarrr @ Mar 27 2009, 14:03) *
Да, надо было с самого начало добавить приставку "псевдо".
Память вовсе не обязательно сидит на общей шине - TCM, например, подключаются отдельно.

Не суть важно.
Есть хоть какой-то адресуемый участок памяти в котором располагается код, и куда по определению нельзя добраться как к блоку данных (прочитать/изменить)?
Все эти доп шины - это так мелкие ускоряющие фичи, не меняющие архитектуру в корне.

Цитата(GetSmart @ Mar 27 2009, 14:09) *
AVR в этом плане "убогий" гарвард. Либо "гарвард" в чистом смысле (аля AVR) убогая идея. Так как не позволяет выполнять код из рамы. И ещё ограничивает командам доступ к разным адресным простанствам.

Ну если поставить заместо Flash RAM - то нет проблем можно будет модифицировать код!
Но в этом и есть разительное отличие архитектур. Низя адресовать всю память линейно!
aaarrr
Цитата(defunct @ Mar 27 2009, 15:14) *
Есть хоть какой-то адресуемый участок памяти в котором располагается код, и куда по определению нельзя добраться как к блоку данных (прочитать/изменить)?
Все эти доп шины - это так мелкие ускоряющие фичи, не меняющие архитектуру в корне.

Угу, значит основное свойство Гарвардской архитектуры - это наличие "участка памяти, в котором располагается код, и куда по определению нельзя добраться как к блоку данных", а раздельные шины - это так, мелочь ненужная?
defunct
Цитата(aaarrr @ Mar 27 2009, 14:21) *
а раздельные шины - это так, мелочь ненужная?

Раздельные шины применительно к общей памяти это просто ускоритель.
Раздельные шины в комплексе с раздельной памятью - это гарвард.

Прилепите к шине инструкций непосредственно ПП, получим гарвардскую систему. Прилепите к ней AHB получим, то же, что и ARM7.
aaarrr
Цитата(defunct @ Mar 27 2009, 15:30) *
Раздельные шины применительно к общей памяти это просто ускоритель.
Раздельные шины в комплексе с раздельной памятью - это гарвард.

Хорошо, а как назовем раздельные шины с раздельным кэшем? И чем это решение будет хуже п.2?

Цитата(defunct @ Mar 27 2009, 15:30) *
Прилепите к шине инструкций непосредственно ПП, получим гарвардскую систему.

В случае с TCM дело именно так и обстоит.
defunct
Цитата(aaarrr @ Mar 27 2009, 14:37) *
Хорошо, а как назовем раздельные шины с раздельным кэшем?

Intel называет это Dual Independent Bus (DIB) и Separate code and data caches. Т.е. своими именами без подведения под какую-то черту.

Цитата
И чем это решение будет хуже п.2?

1. Ресурс(память) один, а шины две. Кеш не панацея всю память на разместит. Ресурс все равно надо делить - а значит меньше производительность.
2. Сложнее в реализации - т.к. для дележки требуется арбитраж.
3. Раз есть арбитраж получаем - непрогнозированную латентность выборки данных и команд.
aaarrr
Цитата(defunct @ Mar 27 2009, 15:56) *
1. Ресурс(память) один, а шины две. Ресурс надо делить - меньше производительность.

Производительность ARM926EJ при работе из TCM (честный Гарвард в вашей интерпретации) и из кэша практически одинаковая (кэш немного быстрее).

Цитата(defunct @ Mar 27 2009, 15:56) *
1. Ресурс(память) один, а шины две. Ресурс Кеш не панацея всю память на разместит.

Вам часто приходится работать со всей памятью? Не панацея, но и не от безделья придуман.

Цитата(defunct @ Mar 27 2009, 15:56) *
2. Сложнее в реализация - т.к. для дележки требуется арбитраж.
3. Раз есть арбитраж получаем - не прогнозированую латентность выборки данных и команд.

Если уж есть кэш, то эти два пункта существуют по определению.
GetSmart
Цитата(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
defunct
Цитата(aaarrr @ Mar 27 2009, 15:02) *
Производительность ARM926EJ при работе из TCM (честный Гарвард в вашей интерпритации) и из кэша практически одинаковая (кэш немного быстрее).

Кто и как измерял? Результат тут будет сильно зависеть от множества параметров - таких как размер кода, количество branch инструкций, объем данных обрабатываемых программой и их размещение.

Не сомневаюсь какой-то крайний случай типа:

while( temp--);

может работать из кеш памяти быстрее.

Цитата(aaarrr @ Mar 27 2009, 15:02) *
Вам часто приходится работать со всей памятью? Не панацея, но и не от безделья придуман.

В пределах работы программы, да - часто вся память используется. Другой вопрос, что на конкретном временном интервале выполняющем какой-то конкретный алгоритм/обработку чего-то, задействовано немного памяти, и на этом получается эффект от кеша. Правда данные которые надо обрабатывать разбросаны по разным участкам памяти, и часто получены через DMA, т.е. львиная доля данных требует invalidate изначально, либо лежит в некешируемом регионе памяти.
aaarrr
Цитата(defunct @ Mar 27 2009, 16:12) *
Кто и как измерял? Результат тут будет сильно зависеть от множества параметров...

Ну, я, например, измерял dhrystone'ом. Аналогичные результаты можно увидеть и у Атмела.
Не спорю, можно придумать задачу, на которой TCM получит преимущество, но в общем случае работа с памятью напрямую и через кэш очень слабо отличается.
defunct
Цитата(aaarrr @ Mar 27 2009, 15:29) *
Не спорю, можно придумать задачу, на которой TCM получит преимущество, но в общем случае работа с памятью напрямую и через кэш очень слабо отличается.

Подытожив, я хочу сказать, что словосочетанием Гарвардская Архитектура отличия между ARM7 и ARM9 выражать неправильно. Применительно к ARM9 ядру - да можно построить на нем гарвардскую систему, но применительно к существующим МК, т.е. к конкретным системам на ARM9 ядре слово Гарвардская Архитектура может не иметь никакого отношения.
aaarrr
Цитата(defunct @ Mar 27 2009, 16:44) *
Применительно к ARM9 ядру - да можно построить на нем гарвардскую систему, но применительно к существующим МК, т.е. к конкретным системам на ARM9 ядре слово Гарвардская Архитектура может не иметь никакого отношения.

Не могу согласиться с подобным выводом, т.к. подавляющее большинство систем, построенных на ARM9, имеют раздельный кэш/TCM, и к Гарвардской архитектуре отношение все-таки имеют.
defunct
Цитата(GetSmart @ Mar 27 2009, 15:04) *
Вспомнил. Читая про Cortex-M3 сразу наткнулся на описание кардинального отличия от ARM7 - это гравардская архитектура, хотя адресное пространство общее.

У Cortex-M3 и система команд несовместимая с ARM7.
IMHO, если планируете работать с конкретными готовыми МК, то лучше не на ядро смотреть, а на то, что на нем слеплено.
Различие в ядрах имеет смысл смотреть если планируется лепить свой SoC.
GetSmart
Цитата(defunct @ Mar 27 2009, 18:44) *
... т.е. к конкретным системам на ARM9 ядре слово Гарвардская Архитектура может не иметь никакого отношения.

Если можно, приведите конкретные примеры ARM9 без гарварда.

Цитата(defunct @ Mar 27 2009, 19:04) *
IMHO, если планируете работать с конкретными готовыми МК, то лучше не на ядро смотреть, а на то, что на нем слеплено.

Я вообще-то также думаю. К примеру фича NXP с 128 битной флэш могла бы претендовать на новое семейство ARM smile.gif То есть она вполне сопоставима с улучшениями вроде гарварда и 5-стадийности.

Просто меня мой шеф напряг своей новящевой идеей про ARM9. Как и все "потребители" (в противовес разработчикам) он искренне верит, что ARM9 в 3-5 раз круче ARM7. Именно семейство круче. То есть если у проца есть "лейбл" ARM9, то это то, что надо. К примеру он предлагает закладываться на LPC31xx и LPC32xx, которые даже внутреннего флэша не имеют. У меня же есть большие сомнения что этот кастрированный ARM9 будет выполнять большой линейный код (без циклов), находящийся во внешней 32 битной флэш быстрее к примеру Cortex-M3 с внутренней флэш. То, что определёнными усилиями можно заставить выполняться небольшую часть кода (десятки кб) на полной частоте проца (266 МГц) конечно я понимаю. Но остальная бОльшая часть кода (сотни кб) будет выполняться даже медленней (в 2 и более раз) чем даже на LPC21/22/23/24. Я прав?
aaarrr
Цитата(GetSmart @ Mar 27 2009, 17:21) *
Но остальная бОльшая часть кода (сотни кб) будет выполняться даже медленней (в 2 и более раз) чем даже на LPC21/22/23/24. Я прав?

Нет, не правы. Где источник торможения? Сотни килобайт линейного кода - это что-то из области фантастики.
GetSmart
Цитата(aaarrr @ Mar 27 2009, 19:38) *
Где источник торможения?

Как это где. Во внешней флэш. 32 бита на 25 МГц допустим. То есть 25 млн. ARM инструкций в секунду.

Цитата
Сотни килобайт линейного кода - это что-то из области фантастики.

Код не обязательно линейный и непрерывный. Ну допустим 1000 процедур почти без циклов, исполняющихся друг за другом.
aaarrr
Цитата(GetSmart @ Mar 27 2009, 17:57) *
Код не обязательно линейный и непрерывный. Ну допустим 1000 процедур почти без циклов, исполняющихся друг за другом.

1000 разных процедур - тоже фантастика.
defunct
Цитата(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 и будет быстро.
GetSmart
Цитата(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 процедур по килобайту устроит? smile.gif
Я клоню к тому, что все они в кэш не влезут. А так как они вызываются по очереди, то когда исполнение вернётся к первой, то она из кэша уже сотрётся.
aaarrr
Цитата(GetSmart @ Mar 27 2009, 18:29) *
100 процедур по килобайту устроит? smile.gif
Я клоню к тому, что все они в кэш не влезут. А так как они вызываются по очереди, то когда исполнение вернётся к первой, то она из кэша уже сотрётся.

А я к тому, что такую ситуацию можно создать разве что искусственно.
GetSmart
Взять например LPC29xx. Указано что это ARM9 (968). Есть внутренний флэш и рама. Но нет кэша никакого. Ну и почему именно 9 а не 7 ? (ну если не считать дополнительные DSP инструкции)

Про гарвард наверное стоит говорить (в противовес гибриду) только когда есть внутренний флэш, что кстати редкость. Если же внутри проца только рама, да и то её малая часть, да если ещё внешняя шина только одна для флэша/статики, то раздельные шины без кэша ничем не помогут. С Интелом как раз вопрос неоднозначный из-за отсутствия внутри и флэша и рамы, да ещё к тому же одна внешняя шина (?).
aaarrr
Цитата(GetSmart @ Mar 27 2009, 18:57) *
Есть внутренний флэш и рама. Но нет кэша никакого.

Зато есть TCM, которыми можно значительно ускорить критические участки.
defunct
Цитата(aaarrr @ Mar 27 2009, 18:05) *
Зато есть TCM, которыми можно значительно ускорить критические участки.

А объем TCM там (968) какой?
GetSmart
Цитата(aaarrr @ Mar 27 2009, 21:05) *
Зато есть TCM, которыми можно значительно ускорить критические участки.

Прочитал поподробнее. Про кэш оказалось не всё ясно. Что такое TCM ?
aaarrr
Цитата(defunct @ Mar 27 2009, 19:07) *
А объем TCM там (968) какой?

На усмотрение производителя кристалла. В данном случае довольно приличный - 16+16.

Цитата(GetSmart @ Mar 27 2009, 19:09) *
Прочитал поподробнее. Про кэш оказалось не всё ясно. Что такое TCM ?

TCM - быстрые раздельные для кода и данных блоки памяти. Вешаются непосредственно на ядро.
GetSmart
Цитата(aaarrr @ Mar 27 2009, 21:12) *
TCM - быстрые раздельные для кода и данных блоки памяти. Вешаются непосредственно на ядро.

Ручной кэшазаменитель? smile.gif

Для данных только непонятно зачем. Ведь внутренняя рама и есть быстрый блок памяти данных. Сделали бы тогда 32К TCM только для кода, а данные в обычную раму можно писать параллельно с выборкой кода.

Вобщем склоняюсь к мнению, что основное отличие 9-ых от 7-ых это конвейер, который для программера имеет самое незаметное значение. 10-ый от 9-ого тоже конвейером отличается.
aaarrr
Цитата(GetSmart @ Mar 27 2009, 19:24) *
Ручной кэшазаменитель? smile.gif

Да, для малоимущих smile.gif

Цитата(GetSmart @ Mar 27 2009, 19:24) *
Для данных только непонятно зачем. Ведь внутренняя рама и есть быстрый блок памяти данных. Сделали бы тогда 32К TCM только для кода, а данные в обычную раму можно писать параллельно с выборкой кода.

Ну, никто не мешает писать и в обычную RAM тоже. А так можно на время работы из TCM отдать шину какому-нибудь DMA.
defunct
Цитата(GetSmart @ Mar 27 2009, 17:29) *
Вы вопрос изначальный помните? Я спрашивал есть ли ARM9 без гарварда и является ли это основным отличием от ARM7.

ARM9TDMI, ни TCM, ни кеш не предусмотрен.
Все в руках разработчика МК, как подключит так и будет.

Можно немного перефразировать вопрос? Является ли наличие двух шин основным отличием от ARM7?
Да, по крайней мере одним из основных отличий является.
DRUID3
...а еще в ARM9 часто присутствует float-coprocessor на борту. А это уже очень серьезно - от исходников которые не надо перерабатывать (скорость разработки), до числового DR (принципиальная взможность чего либо соорудит, для DSP например)... Это так, к слову... rolleyes.gif
aaarrr
Насчет часто Вы, пожалуй, погорячились - это и здесь все же относительно редкое явление sad.gif
GetSmart
Подводя (промежуточный?) итог, я выяснил, что ARM7 отличается от ARM9 обязательным наличием по крайней мере двух раздельных внутренних шин для кода и данных, и усложнением конвейера до 5 стадий. Всё остальное опционально. Для программиста обе этих доработки на 99% незаметны. Программист может смело считать, что он работает с ARM7, имеющим кэш, MMU, VFP и прочие фичи не как усовершенствование ядра, а как дополнительную перифирию (от NXP к примеру). И вообще, выбирая ARM-процессор стоит обращать не на цифру 7,9,10 и тд, а на конкретные фичи. Причём фичи конкретного проца конкретного производителя (не важно какой версии ARM) могут иметь куда более важное значение, как например наличие внутреннего флэша, тактовая частота, размер кэша и размер внутренней рамы. Они могут повлиять на производительность куда больше чем просто двойная шина и конвейер.

Цитата(DRUID3)
...а еще в ARM9 часто присутствует float-coprocessor на борту. А это уже очень серьезно - от исходников которые не надо перерабатывать (скорость разработки), до числового DR (принципиальная взможность чего либо соорудит, для DSP например)... Это так, к слову...
Только для DSP приминений. Иначе от него пользы как собаке пятая нога.
defunct
Кстати, вот хорошая ссылка, по вопросу насчет архитектуры ARM:

Цитата
Прочие модификации
Существуют гибридные модификации архитектур, сочетающие некоторые достоинства как Гарвардской, так и фон-Неймановской архитектур. Например, современные варианты процессоров ARM, как правило, обладают раздельной кэш-памятью для инструкций и данных, что позволяет им за один такт получать одновременно как команду, так и данные для её выполнения, то есть процессорное ядро, формально, является гарвардским, но с программной точки зрения выглядит как фон-Неймановское, что упрощает написание программ. Обычно в данных процессорах одна шина используется и для передачи команд, и для передачи данных, что упрощает конструкцию системы. Современные варианты таких процессоров могут иногда содержать встроенные контроллеры сразу нескольких разнотипных шин для работы с различными типами памяти — например, DDR RAM и Flash. Тем не менее и в этом случае шины, как правило, используются и для передачи команд, и для передачи данных без разделения, что делает данные процессоры еще более близкими к фон-Неймановской архитектуре при сохранении плюсов Гарвардской архитектуры.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.