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

 
 
> Cortex-M3. Где разместить память на System bus или Icode/Dcode
Kopart
сообщение Sep 10 2013, 07:38
Сообщение #1


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Из ядра Cortex-M3 выходят три шины System bus, Icode,Dcode.
При этом System bus является объединением Icode,Dcode внутри ядра.

Декларируется, что лучше размешать основной большой блок памяти на шине System bus. Из него как инструкции, так и данные должны читаться.
При этом в реализованных процессорах этот блок в основном размещают после объединения Icode,Dcode.

Кто знаком какая реализация блока памяти удобней и правильней?
На System bus или на Icode,Dcode?

При этом на Icode,Dcode будет находиться ROM и небольшая память инструкций.
Основная память преимущественно будет использоваться для данных.


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 3)
scifi
сообщение Sep 10 2013, 09:04
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 3 020
Регистрация: 7-02-07
Пользователь №: 25 136



Цитата(NiOS @ Sep 10 2013, 11:38) *
При этом System bus является объединением Icode,Dcode внутри ядра.

Где это сказано? Ересь, ИМХО.

Цитата(NiOS @ Sep 10 2013, 11:38) *
Декларируется, что лучше размешать основной большой блок памяти на шине System bus.

Кем декларируется? Где?

Цитата(NiOS @ Sep 10 2013, 11:38) *
Кто знаком какая реализация блока памяти удобней и правильней?
На System bus или на Icode,Dcode?

Советую почитать Cortex-M3 Technical Reference Manual, разделы 14.3, 14.4, 14.5 (ICode bus interface, DCode bus interface, System interface). Я думаю, большинство вопросов сразу отпадёт. Кстати, там же написано, что выполнение кода через System interface будет в разы медленнее, чем через ICode bus.
Go to the top of the page
 
+Quote Post
Kopart
сообщение Sep 10 2013, 10:32
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 601
Регистрация: 1-03-05
Из: Spb
Пользователь №: 2 972



Цитата(scifi @ Sep 10 2013, 13:04) *
Где это сказано? Ересь, ИМХО.

Это следует из логики, что из ядра процессора кортекса выходит только две шины: инструкций и данных.
А эта шина System и то и другое.

System interface
Instruction fetches, and data and debug accesses, to address ranges 0x20000000 to 0xDFFFFFFF and
0xE0100000 to 0xFFFFFFFF are performed over this 32-bit AHB-Lite bus.
Цитата
Кем декларируется? Где?


The Definitive Guideto the ARM ® Cortex-M3
6.6 Typical Connections
The main SRAM block should be connected through the system bus interface, using the SRAM
memory address region. This allows data access to be carried out at the same time as instruction access.

А также тут
Cortex-M3 DevicesGeneric User Guide

2.2.3 Behavior of memory accesses
Executable region for data. You can also put code here.This region includes bit band and bit band alias areas,


Цитата
Советую почитать Cortex-M3 Technical Reference Manual, разделы 14.3, 14.4, 14.5 (ICode bus interface, DCode bus interface, System interface). Я думаю, большинство вопросов сразу отпадёт. Кстати, там же написано, что выполнение кода через System interface будет в разы медленнее, чем через ICode bus.

Там написано, что из-за "registered" (AHB-AHB bridge?) задержка при чтении инструкция на System bus на 1Т больше.

14.5.6 Pipelined instruction fetches
To provide a clean timing interface on the System bus, instruction and vector fetch
requests to this bus are registered. This results in an additional cycle of latency because
instructions fetched from the System bus take two cycles.

Те это только в 2 раза медленее.
И то это написно в предыдущей версии Revision: r1p1

В текущей последней версии Revision r2p1 я таких строк не нашел, может и нету там уже этой задержки в 1Т.


--------------------
Насколько проще была бы жизнь, если бы она была в исходниках
Go to the top of the page
 
+Quote Post
-=Sergei=-
сообщение Sep 10 2013, 11:33
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 339
Регистрация: 26-10-04
Пользователь №: 985



Цитата(NiOS @ Sep 10 2013, 11:38) *
Из ядра Cortex-M3 выходят три шины System bus, Icode,Dcode.
При этом System bus является объединением Icode,Dcode внутри ядра.

Декларируется, что лучше размешать основной большой блок памяти на шине System bus. Из него как инструкции, так и данные должны читаться.
При этом в реализованных процессорах этот блок в основном размещают после объединения Icode,Dcode.

Кто знаком какая реализация блока памяти удобней и правильней?
На System bus или на Icode,Dcode?

При этом на Icode,Dcode будет находиться ROM и небольшая память инструкций.
Основная память преимущественно будет использоваться для данных.



Такое ощущение что вся Россия закупилась у АРМа ядрами sm.gif

Обращения ядра по адресам от 0x0000_0000 до 0x1FFF_FFFF будут транслироваться на шины I и D. Обращения по адресам 0x2000_0000 и до 0xE000_0000 (???) транслируются на S шину. Выше 0xE000_0000 (???) транслируются во внутреней периферийной шине. По I шине идет выборка инструкций, по D шине операндов. По S могут извлекаться и инструкции и данные.
Go to the top of the page
 
+Quote Post

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

 


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


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