You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The Svpbmt says that memAttr is both IO and NC for the purpose of FENCE, .aq and .rl
If the underlying physical memory attribute for a page is I/O, and the page has PBMT=NC, then
accesses to that page obey RVWMO. However, accesses to such pages are considered to be both I/O and
main memory accesses for the purposes of FENCE, .aq, and .rl.
How to understand the "both"?
the MMU only gives a definity memAttr for a specific PA, doesn't it ?
If PA0 is defined as IO in PMA, and is override by PBMT=NC in a pte, then MMU output memAttr = NC according to Svpbmt spec. Then
for a common ld/st intruction, ld xn, [PA0], what is the acutual memAttr with the PA0 in LSU interface to memory?
for a FENCE/.aq/.rl instruction, what is the acutual memAttr with the PA0 in LSU interface to memory?
any differences between 1 and 2 ?
The text was updated successfully, but these errors were encountered:
Yes, a leaf PTE defines the memory attributes for just (all) the PAs within that page.
The highlighted Svpbmt text is saying that all addresses within such a page (PMA=IO, PBMT=NC), are fenced by both IO fences and main memory fences (and similar for .aq/.rl fencing purposes). Whereas PMA=IO, by itself, would say that all addresses are only fenced by IO fences. And if PMA=main_mem and PBMT=NC together, then all addresses are only fenced by main memory fences.
The Svpbmt says that memAttr is both IO and NC for the purpose of FENCE, .aq and .rl
How to understand the "both"?
the MMU only gives a definity memAttr for a specific PA, doesn't it ?
If PA0 is defined as IO in PMA, and is override by PBMT=NC in a pte, then MMU output memAttr = NC according to Svpbmt spec. Then
The text was updated successfully, but these errors were encountered: