Kopart 0 10 сентября, 2013 Опубликовано 10 сентября, 2013 · Жалоба Из ядра Cortex-M3 выходят три шины System bus, Icode,Dcode. При этом System bus является объединением Icode,Dcode внутри ядра. Декларируется, что лучше размешать основной большой блок памяти на шине System bus. Из него как инструкции, так и данные должны читаться. При этом в реализованных процессорах этот блок в основном размещают после объединения Icode,Dcode. Кто знаком какая реализация блока памяти удобней и правильней? На System bus или на Icode,Dcode? При этом на Icode,Dcode будет находиться ROM и небольшая память инструкций. Основная память преимущественно будет использоваться для данных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 10 сентября, 2013 Опубликовано 10 сентября, 2013 · Жалоба При этом System bus является объединением Icode,Dcode внутри ядра. Где это сказано? Ересь, ИМХО. Декларируется, что лучше размешать основной большой блок памяти на шине System bus. Кем декларируется? Где? Кто знаком какая реализация блока памяти удобней и правильней? На 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. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Kopart 0 10 сентября, 2013 Опубликовано 10 сентября, 2013 · Жалоба Где это сказано? Ересь, ИМХО. Это следует из логики, что из ядра процессора кортекса выходит только две шины: инструкций и данных. А эта шина 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Т. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
-=Sergei=- 0 10 сентября, 2013 Опубликовано 10 сентября, 2013 · Жалоба Из ядра Cortex-M3 выходят три шины System bus, Icode,Dcode. При этом System bus является объединением Icode,Dcode внутри ядра. Декларируется, что лучше размешать основной большой блок памяти на шине System bus. Из него как инструкции, так и данные должны читаться. При этом в реализованных процессорах этот блок в основном размещают после объединения Icode,Dcode. Кто знаком какая реализация блока памяти удобней и правильней? На System bus или на Icode,Dcode? При этом на Icode,Dcode будет находиться ROM и небольшая память инструкций. Основная память преимущественно будет использоваться для данных. Такое ощущение что вся Россия закупилась у АРМа ядрами :) Обращения ядра по адресам от 0x0000_0000 до 0x1FFF_FFFF будут транслироваться на шины I и D. Обращения по адресам 0x2000_0000 и до 0xE000_0000 (???) транслируются на S шину. Выше 0xE000_0000 (???) транслируются во внутреней периферийной шине. По I шине идет выборка инструкций, по D шине операндов. По S могут извлекаться и инструкции и данные. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться