| поискавой системы для электроныых деталей |
|
AVR32AP датащи(PDF) 71 Page - ATMEL Corporation |
|
|
|||||||||||||||||||||||||||||
AVR32AP датащи(HTML) 71 Page - ATMEL Corporation |
|
71 / 181 page ![]() 71 32001A–AVR32–06/06 AVR32 6.2.4 The Unlock operation The unlock operation will try to unlock the line containing the address given by the parameter. The address is treated as a virtual address, and is translated to a physical address by the MMU. If the line exists in the cache and is locked, it is unlocked. Otherwise nothing is done. If any MMU exceptions happen, the operation is silently aborted. 6.2.5 The Prefetch operation The prefetch operation will try to load the line containing the address given by the parameter into the cache. The address is treated as a virtual address, and is translated to a physical address by the MMU. If the line exists in the cache, nothing is done. If the line does not exist in the cache, it will be fetched from the bus - even if the area is uncacheable. If any exceptions happen - MMU or bus exceptions - the operation is silently aborted. 6.3 Memory coherency Whenever code is modified in some way, e.g. through self-modifying code, there is a chance that the instruction cache may hold cached copies of the old instructions. To ensure correct exe- cution of the new code, the user must manually force the caches to update. The procedures for doing so are described below. 6.3.1 DMA of program code If some peripheral updates program code through DMA to memory, the instruction cache may hold cached copies of the old code. The old code must be manually flushed from the instruction cache by following these steps: 1. Flush the entire instruction cache, as described in chapter 6.2.1, or 2. Flush only the affected memory areas through one or more Invalidate operations, as described in chapter 6.2.2. 3. Jump to the new code using an unpredicted branch Example: mov R0, 0 cache ICACHE_FLUSH, R0[ICACHE_INVALIDATE_ALL] mov PC, new_code_label 6.3.2 Self-modifying code If the CPU updates the code through writing to memory, the updated code may be buffered in the data cache or the write buffer, and the instruction cache may hold cached copies of the old code. The caches must be manually updated by following these steps: 1. Clean the entire data cache, as described in TODO, or 2. Clean only the affected memory areas through one or more Clean operations, as described in TODO. 3. Empty the write buffer, as described in TODO 4. Flush the entire instruction cache, as described in chapter 6.2.1, or 5. Flush only the affected memory areas through one or more Invalidate operations, as described in chapter 6.2.2. 6. Jump to the new code using an unpredicted branch |
|
ссылки URL |
| Вашему бизинису помогли Аллдатащит? [ DONATE ] |
Что такое Аллдатащит | реклама | контакт | Конфиденциальность | Ссылка на техническое описание | обмен ссыками | поиск по производителю All Rights Reserved©Alldatasheet.com |
| Russian : Alldatasheetru.com | Korean : Alldatasheet.co.kr | Spanish : Alldatasheet.es | French : Alldatasheet.fr | Italian : Alldatasheetit.com Portuguese : Alldatasheetpt.com | Polish : Alldatasheet.pl | Vietnamese : Alldatasheet.vn Indian : Alldatasheet.in | Mexican : Alldatasheet.com.mx | British : Alldatasheet.co.uk | New Zealand : Alldatasheet.co.nz |
|
Family Site : ic2ic.com |
icmetro.com |