| Автор |
Съобщение |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
 АРМ7 въпроси
Някои може ли да разясни малко MEMORY ACCELERATOR MODULE. Кво е това нещо как се пие и кво му е мезето 
|
| Пет Ное 11, 2005 1:37 am |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
Memory Accelerator Module(MAM) ускорява изпълнението на програмата, когато тя се изпълнява от по-бавния FLASH. Говоря за LPC2000 серията, където го има и PHILIPS навсякъде подчертават, че имат zero wait states при изпълнение на програмата от FLASH. Както и по-голяма определеност в поведението на процесора в сравнение с използването на кеш. В UserManual-a на всеки процесор от серията има обяснени принципите на работа, най-добре да пиеш от извора.
На демонстрациите PHILIPS най-често показват как една програмка за мигащ светодиод се забавя когато я прехвърлиш от RAM-а във FLASH-a и после как скоростта се възстановява когато включиш MAM в действие. Когато обаче опре до по-сложни програми тогава истината излиза на бял свят. Та значи този МАМ губи ефективността си ако имаш начесто branch инструкции. За това обаче може да се използват условно изпълнявани команди в критичните на скорост места.
Например вместо:
става:
И пак ускорението не е гарантирано. Но пък и без MAM скоростта чувствително пада.
МАМ също така може да намали консумацията тъй като съкращава броят обръщaния към FLASH-a.
Не знам има ли го при другите MCU с ARM7 ядро, това което говоря е за LPC2000 серията.
|
| Пет Ное 11, 2005 10:55 am |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
Такива инструкции(от сорта ldreq) има само в ARM режим в Thumb няма условно изпълнявани инструкции.
|
| Пет Ное 11, 2005 11:02 am |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Мерси. Просветна ми. 2 пъти го четох в оригиналната документация но не можа да ми се изясни точно.
|
| Пет Ное 11, 2005 1:52 pm |
|
 |
|
Цецо
Ранг: Форумен бог
Регистриран на: Пон Сеп 27, 2004 9:22 am Мнения: 15501 Местоположение: София
|
Има го само при Филипс за сега. Може би защото флаша им хич не е от бързите.
Има ефект от него особенно при линеен код. Когато имаш много подскоци и разклонения - ефекта е нулев.
Иначе е нещо като кеш или конвейр или по скоро комбинация от двете.
_________________ "Да еба и шибаната държава" мислеше си Гошо, докато се опитваше да улучи кофата за боклук от балкона на осмия етаж.
|
| Пет Ное 11, 2005 6:01 pm |
|
 |
|
CM600
Ранг: Новодошъл
Регистриран на: Пет Окт 21, 2005 9:35 pm Мнения: 152 Местоположение: Варна
|
Според PHILIPS по късите преходи не трябва да са проблем защото MAM модула има Branch Trail Buffer-и от по 128 бита, които пазят последните изпълнени инструкции. Така, че ако се изпълнява някой цикъл, който не подскача много надалеч, би трябвало да има положителен ефект
Някои LPC-та (май че 22xx) имаха регистри с които да се следи състоянието на MAM, ама не съм много сигурен. С ADuC съм работил повече, там няма MAM.
|
| Пет Ное 11, 2005 8:08 pm |
|
 |
|
the_real_maniac
Ранг: Почетен член
Регистриран на: Пет Авг 19, 2005 11:38 am Мнения: 978 Местоположение: Europe -> BG
|
offtopic:
Край ! Вече твърдо реших колкото се може по-скоро почвам да се занимавам с ARM7 (е естествено и да не забравяме CPLD-тата )
т.е накефЪх са 
|
| Пет Ное 11, 2005 8:24 pm |
|
 |
|
Dimitar
Ранг: Форумен бог
Регистриран на: Пет Ное 12, 2004 3:38 pm Мнения: 9103 Местоположение: Chicago, IL
|
И от какво се накефи толкова ако мога да попитам  .
|
| Пет Ное 11, 2005 8:50 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Ух. Пак закъсах. Този път с VIC.
От 2 часа чета и се пуля пред документацията , оригиналната от ARM и не мога да зацепя кое от къде ми идва.
Не мога да схвана къде са ми флаговете на отделните прекъсвания. Не мога да схвана и как се конфигурира кои източник на прекъсване да е FIQ.
Векторните ги рабрах уж. А тия дето са Non-vectored IRQ и за тях не ми стана ясно нещо. Някои може ли да хвърли малко светлина по въпроса. Нещо хич не ми спори с тия армове 
|
| Пет Ное 11, 2005 9:03 pm |
|
 |
|
ДедоБоре
Ранг: Форумен бог
Регистриран на: Нед Ное 21, 2004 11:31 pm Мнения: 10088
|
това нещо като "хипер-кеш" ли е? щото дори нормален кеш тярбва да решава тези проблеми. или кеша не върви на 1 такт или какво? ако беше свързано с thumb режима и има значение за конвейра (след 'unthumb-ване на унструкцията) го разбирам, ама то важало само за 32-битова мода. здрав, айде, бил си на презентацията. с какво точно се биха в гърдите? поправка:сега се зачетох в документацията на 2106. той нямал кеш изобщо! бях свикнал априори ARM7 коровете да имат поне 8К конфугурируем кеш, ама този май е уникат. май отговора на въпроса какво е МАМ е "кеш за инструкции с големина 8 инструкции" 8 защото имаме 2х128 бита / 32 бита за инструкция поправете ме ако съм разбрал криво нещо документацията
|
| Пет Ное 11, 2005 9:05 pm |
|
 |
|
the_real_maniac
Ранг: Почетен член
Регистриран на: Пет Авг 19, 2005 11:38 am Мнения: 978 Местоположение: Europe -> BG
|
Еми като включим другите неща , които чух за ARM7/9 (стабилност, възможности) + това горе + скоростта , която могат да достигнат (такт => цикъл на инструкция и прочие) как да не им се накефи вече човек
Пък и точно ти да питаш такова нещо човек, който търси да мине на друго от PIC след време
--
въпроса го обмислям от известно време (да се чете от както прочетох отзивите/споделения опит за PIC на хората от този форум), но спирам до тук, че темата на Nikola е за друго.
има си теми за моя въпрос / моето чудене 
|
| Пет Ное 11, 2005 10:32 pm |
|
 |
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 9:21 pm Мнения: 30685 Местоположение: София
|
Абе в определени отношения си е супер АРМ, но да измести нещо от сорта на pIC не го виждам, ще си играя с него определено, но за момента си поръчах равойна среда на Cygnal тъкмо имам приложение като за него, това ARM-а не може да конкурира, има си приложения където 32 битовите сметки не са много но скоростта е от значение, а това са си 100 MIPS, и тях от давна им се каня, ей ся ще ги видя. Иначе пък се сещам за едно приложение дето арм-а просто е бе конкуренция, и за още едно дето на амд алхимика му е конкуренция ... за сега .....
|
| Пет Ное 11, 2005 11:04 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
Спокойно VIC изглежда малко объркващо в началото може би заради многото регистри. Избираш кой да бъде FIQ като използваш VICIntSelect регистъра. В UserManual-а в раздела за VIC има една таблица "Interrupt sources" В тази таблица всички източници на прекъсване имат номер. За да конфигурираш дадено прекъсване като FIQ трябва да сетнеш съответния номер бит във VICIntSelect. Например Timer0 е номер 4. За да имаш FIQ от Timer0 пишеш:
Остава ти само да го активираш с:
Във таблицата на изключителните събития във startup файла на адрес 0x1C трябва да имаш вектор към FIQ процедурата ти и си готов.
Щом си разбрал за векторните за невекторните е още по-лесно. Просто сетваш бита му във VICIntEnable. Когато постъпи заявка за такова прекъсване ARM7 ще прочете какъв адрес има записан във VICDefVectAddr и изпълнението ще бъде насочено към този адрес превключвайки ядрото в IRQ режим.
Мисля че първият път когато конфигурираш VIC с някакъв реален пример ще ти стане ясно.
|
| Пет Ное 11, 2005 11:08 pm |
|
 |
|
Nikola Kirov
Ранг: Форумен бог
Регистриран на: Нед Окт 31, 2004 9:19 pm Мнения: 4464 Местоположение: Stara Zagora
|
Като че ли ми просветна. А флагове на различните прекъсвания имам ли?
|
| Пет Ное 11, 2005 11:21 pm |
|
 |
|
Zdrav
Ранг: Форумен бог
Регистриран на: Сря Яну 26, 2005 2:01 pm Мнения: 1952 Местоположение: Варна
|
ДедоБоре MAM замества кеша при LPC2000. На презентацията не казаха нещо различно от писаното в документацията.
Да не съм те подвел. Примера който дадох беше че при Thumb инструкциите не можеш да имаш условно изпълнение. Тоест ldreq е само за ARM режим, за Thumb имаш само ldr.
MAM работи независимо от режима ARM/Thumb.
Обсъжданията почват да приличат на моменти на ARM срещу останалия свят 
|
| Пет Ное 11, 2005 11:30 pm |
|
|