1.前言
2. Memory類型和屬性
memory分為normal memory和device memory,兩種類型的Memory有各自的屬性,除了下面介紹的幾種屬性外,還有其他一些雜項屬性
2.1 Normal Memory
- Shareable Normal Memory
可以被所有的PE訪問, 包括:Inner Shareable, and Outer Shareable;
- Non-shareable Normal Memory
只能被唯一的PE訪問;
- Cacheability屬性
Normal Memory具有Cacheability屬性,此屬性包含如下三種:
(1)Write-Through Cacheable:同時寫入cache與內存;
(2)Write-Back Cacheable:直接更新cache,閑時再更新到內存;
(3) Non-cacheable:無cache,不需要更新cache,直接更新內存
2.2 Device Memory
Device Memory具有如下幾種屬性:
- Gathering 或者non Gathering (G or nG)
這個特性表示對多個memory的訪問是否可以合並,如果是nG,表示處理器必須嚴格按照代碼中內存訪問來進行,不能把兩次訪問合並成一次。例如:代碼中有2次對同樣的一個地址的讀訪問,那么處理器必須嚴格進行兩次read transaction
- Re-ordering (R or nR)
這個特性用來表示是否允許處理器對內存訪問指令進行重排。nR表示必須嚴格執行program order。
- Early Write Acknowledgement (E or nE)
PE訪問memory是有問有答的(更專業的術語叫做transaction),對於write而言,PE需要write ack操作以便確定完成一個write transaction。為了加快寫的速度,系統的中間環節可能會設定一些write buffer。nE表示寫操作的ack必須來自最終的目的地而不是中間的write buffer。
3. memory訪問的限制
1. 如果訪問的是兩個連續字節p、q,則p、q需要有相同的存儲類型和共享屬性;要有共同的cacheablbility;
2. 如果訪問的是device memory,則要求必須是對齊的;
4. 參考文檔
[1] DDI0487A_k_armv8_arm_iss10775.pdf