Download - Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors
![Page 1: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/1.jpg)
CCMMLLCCMMLL
Cache Vulnerability Cache Vulnerability Equations for Protecting Equations for Protecting
Data in Embedded Data in Embedded Processor Caches from Processor Caches from
Soft ErrorsSoft Errors†Aviral Shrivastava, €Jongeun Lee, †Reiley
Jeyapaul
†Compiler and Microarchitecture Lab, € High Performance Computing Lab, Arizona State University, USA UNIST, Ulsan, South Korea
LCTES 2010Stockholm, Sweden
04/22/231 http://www.public.asu.edu/~ashriva6
![Page 2: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/2.jpg)
CCMMLLCCMMLL
Phenomenon of Soft Phenomenon of Soft ErrorError
□ Transient Faults□ Random and spontaneous
bit-changes in system
□ Can be caused by□ Circuit noise□ Cross-talk
□ More than 50% due to radiation strike
04/22/232 http://www.public.asu.edu/~ashriva6
![Page 3: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/3.jpg)
CCMMLLCCMMLL
Masking EffectsMasking Effects• Logic Masking• Electrical Masking• Latching Window Masking• Microarchitectural
Masking• Software Masking
04/22/233 http://www.public.asu.edu/~ashriva6
![Page 4: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/4.jpg)
CCMMLLCCMMLL
Growing ProblemGrowing Problem
• Soft Error rate is currently about 1 per year• Increasing exponentially with technology scaling• Projected to become 1 per day in a decade
Will soon become a problem in earth-bound electronicsWill soon become a problem in earth-bound electronics
04/22/234 http://www.public.asu.edu/~ashriva6
![Page 5: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/5.jpg)
CCMMLLCCMMLL
Caches most Caches most vulnerablevulnerable
04/22/23 http://www.public.asu.edu/~ashriva65
• Temporal masking is very effective
• Caches occupy majority of chip-area
• Much higher % of transistors– More than 80% of the transistors
in Itanium 2 are in caches.
• Caches operated at low voltage levels for higher speed and low-power– Even low energy particles can
cause errors
• ECC is not enough– has high power and performance
overheads for L1 cache
– ECC used up in manufacturing error correction
![Page 6: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/6.jpg)
CCMMLLCCMMLL
Cache VulnerabilityCache Vulnerability
• A cache location is vulnerable if– It will be read by the processor, or it will be committed to memory– AND it is dirty
• Note: Non dirty data is not vulnerable– Can always re-read non-dirty data from lower level of memory
• Instantaneous (cache) Vulnerability (bytes) is the number of cache locations that are vulnerable [Mukherjee 2003]
• Total (cache) Vulnerability of a program (in bytes * cycles) is the summation of cache vulnerability in each cycle of program execution.
6 04/22/23 http://www.public.asu.edu/~ashriva6
R W R R RCE CE
Time
W
![Page 7: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/7.jpg)
CCMMLLCCMMLL
Existing SchemesExisting Schemes• Hardened memory cells
– 8T, 10T designs, add cross resistance• High power and performance overhead
• Error Correction Codes– Single Error Correction, and Double Error Detection (SECDED)
– Need log2n bits to protect n-bits
– Most popular, but high overhead for L1 cache• Increase power consumption by >25% [Phelan 2003]
– ECC used up in covering manufacturing defects
• Write-through cache– Zero vulnerability, but high cache-memory traffic
• Periodically write-back all dirty lines– Simple, but not very smart. Less protection for high overhead.
04/22/23 http://www.public.asu.edu/~ashriva67
Need Efficient technique for Vulnerability Reduction
Need Efficient technique for Vulnerability Reduction
![Page 8: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/8.jpg)
CCMMLLCCMMLL
Explore Compiler Explore Compiler TechniquesTechniques
• Need to reduce the amount of time, data is vulnerable in the cache
• Vulnerability depends on the access pattern of data
04/22/23 http://www.public.asu.edu/~ashriva68
for ( i : 0 ≤ i < N ) { for ( k : 0 ≤ k < N ) { for ( j : 0 ≤ j < N ) { A[i][k] += B[i][j] * C[j][k] } }}
for ( i : 0 ≤ i < N ) { for ( k : 0 ≤ k < N ) { for ( j : 0 ≤ j < N ) { A[i][k] += B[i][j] * C[j][k] } }}
Completely compute A[i][k] in the innermost
loop
Completely compute A[i][k] in the innermost
loop
for ( i : 0 ≤ i < N ) { for ( j : 0 ≤ j < N ) { for ( k : 0 ≤ k < N ) { A[i][k] += B[i][j] * C[j][k] } }}
for ( i : 0 ≤ i < N ) { for ( j : 0 ≤ j < N ) { for ( k : 0 ≤ k < N ) { A[i][k] += B[i][j] * C[j][k] } }}
Need A[i][k] across iterations of outermost
loop
Need A[i][k] across iterations of outermost
loop
Low Vulnerabilitybut also High Runtime
Low Vulnerabilitybut also High Runtime
![Page 9: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/9.jpg)
CCMMLLCCMMLL
MatMul Loop MatMul Loop InterchangeInterchange
9
Loop Interchange on Matrix Multiplication
Interesting configurations exist, with low vulnerability and low runtime.
Vulnerability trend not same as performance
9
Opportunities may exist to trade off little runtime for large savings in vulnerability
Opportunities may exist to trade off little runtime for large savings in vulnerability
96% variation in vulnerability for16% variation in runtime
04/22/23 http://www.public.asu.edu/~ashriva6
![Page 10: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/10.jpg)
CCMMLLCCMMLL
How to Exploit the How to Exploit the trade-off?trade-off?• Need to compute the vulnerability
– Can be done by simulation– Run the application with different data access patterns, and
pick the one with the least vulnerability
• May be applicable for extremely embedded systems• Runtime maybe an issue
– Some program run indefinitely
• Number of configurations to run is too large– E.g., Array padding
• How to scale the results to slightly different configuration
– E.g., increase cache size
04/22/23 http://www.public.asu.edu/~ashriva610
Need efficient method of computing vulnerabilityNeed efficient method of computing vulnerability
![Page 11: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/11.jpg)
CCMMLLCCMMLL
OutlineOutline• Growing threat of soft errors• Efficient techniques needed for L1
cache protection• Need efficient techniques to estimate
vulnerability• Cache Miss Equations• Vulnerability Calculations• Experiments
04/22/23 http://www.public.asu.edu/~ashriva611
![Page 12: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/12.jpg)
CCMMLLCCMMLL
Access and Cache Access and Cache SpaceSpace
k
j
i
(0,0,0)
i = 1
i = N(1,4,2)
Cache Space
m
n
line 2
(0,0)
Access Space:Access Space:Every point is an iteration of
the loop
for (i=0; i < N; i++) for (j=0; j < N; j++) for (k=0; k < N; k++) A[i][k] += B[i][j] * C[j][k] endFor endForendFor
for (i=0; i < N; i++) for (j=0; j < N; j++) for (k=0; k < N; k++) A[i][k] += B[i][j] * C[j][k] endFor endForendFor
MemAddr: MemAddr: Iteration Memory AddressAF(1,2,4) = C+N2+4N+2
Memory Space
x
y
C(4,2)
(0,0) N
N
CacheAddr: CacheAddr: Memory Address Cache
AddressCache Line = (MemAddr/L)
L: # lines in the cache
Reference & Access
![Page 13: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/13.jpg)
CCMMLLCCMMLL
Data ReuseData Reuse
k
j
i
(0,0,0)
i = 1
i = N
i1(0,4,2)
i2(1,4,2)
iN(N,4,2)
Access Space:Access Space:Every point is an iteration of
the loop
for (i=0; i < N; i++) for (j=0; j < N; j++) for (k=0; k < N; k++) A[i][k] += B[i][j] * C[j][k] endFor endForendFor
for (i=0; i < N; i++) for (j=0; j < N; j++) for (k=0; k < N; k++) A[i][k] += B[i][j] * C[j][k] endFor endForendFor
Data Space
x
y
C(4,2)
(0,0) N
N
• When the same data is accessed from iteration and iteration , we say, there is data reuse in direction
1i
2i
12 iir
21 ii
= (1,0,0)r
13 04/22/23 http://www.public.asu.edu/~ashriva6
![Page 14: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/14.jpg)
CCMMLLCCMMLL
Cache MissCache Miss
k
j
i
C(4,2)
C(4,2)
C(4,2)
r
(0,0,0)
i = 1
i = N
iN(N,4,2)
Another iteration accesses data of array
B, mapped to the same cache location
causing a cache Misscache Miss.
B(0,7)
p(0,4,2)
i(1,4,2) (1,0,0)
for (i=0; i < N; i++) for (j=0; j < N; j++) for (k=0; k < N; k++) A[i][k] += B[i][j] * C[j][k] endFor endForendFor
for (i=0; i < N; i++) for (j=0; j < N; j++) for (k=0; k < N; k++) A[i][k] += B[i][j] * C[j][k] endFor endForendFor
B(0,7)
Memory Space
x
y
C(4,2)
(0,0) N
N
Cache Space
m
n
(0,0)
The element of array C is evicted evicted from the cachefrom the cache
and replaced by an element from array
B.line 2
04/22/2314 http://www.public.asu.edu/~ashriva6
![Page 15: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/15.jpg)
CCMMLLCCMMLL
Cache MissesCache Misses• Cache Miss
Equation
– Returns 1 if the reuse in reference r along the reuse vector v was not realized at iteration j due to a conflict by reference q at iteration k.
04/22/23 http://www.public.asu.edu/~ashriva615
))()((:),,( nCkMAjMAvkjCME qrqr
)0(& njkvj )(&
j,r
j-v, r
k,q
),( riAccess
RrIi ,
![Page 16: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/16.jpg)
CCMMLLCCMMLL
Cache MissesCache Misses• Miss Iterations
– Iterations at which the reference r misses, along the reuse vector r, due to interference with another reference q.
04/22/23 http://www.public.asu.edu/~ashriva616
)},,(,,|{)( iqri
qr vkjCMEZnIkIjvMI
Hit:No k exists
Miss: because k exists
![Page 17: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/17.jpg)
CCMMLLCCMMLL
Cache MissesCache Misses• Miss Iterations due to multiple references
– There is a miss at iteration j, if there is a miss due to any reference
04/22/23 http://www.public.asu.edu/~ashriva617
Rqi
qrir vMIvMI
)()(
Miss: because of reference q
Miss: because of reference s
k1, q
k2, s
![Page 18: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/18.jpg)
CCMMLLCCMMLL
Cache MissCache Miss• Miss Iterations due to multiple reuse vectors
– There will be a miss at iteration j if there is miss along all the reuse vectors
04/22/23 http://www.public.asu.edu/~ashriva618
i Rqi
qr
iirr vMIvMIMI
)()(
Miss: Because of the smallest reuse vector
![Page 19: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/19.jpg)
CCMMLLCCMMLL
OutlineOutline• Growing threat of soft errors• Efficient techniques needed for L1
cache protection• Need efficient techniques to estimate
vulnerability• Cache Miss Equations• Vulnerability Calculations• Experiments
04/22/23 http://www.public.asu.edu/~ashriva619
![Page 20: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/20.jpg)
CCMMLLCCMMLL
Computing Computing VulnerabilityVulnerabilityStat
eAccess Read
Write
Dirty
Hit (1) None
Repl. Miss
(2)
Cold Miss
None
Clean Any None(1)Hit Vul.
p = j-v j(2)
Miss Vul.p = j-v jk* k
04/22/2320 http://www.public.asu.edu/~ashriva6
![Page 21: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/21.jpg)
CCMMLLCCMMLL
Challenges in Vul. Challenges in Vul. EstimationEstimation
• Miss(j): I {0,1}– Miss at iteration j is a Boolean function
• Vul(j): I I+ – Vulnerability at iteration j is an integer function– How to represent integer function as a set?
• Much more complexity:– Misses are in iterations, while vulnerability is in
cycles– Only dirty blocks are vulnerable
04/22/23 http://www.public.asu.edu/~ashriva621
![Page 22: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/22.jpg)
CCMMLLCCMMLL
Computing Computing VulnerabilityVulnerability
• Suppose a variable is accessed several times– Cold miss– Incremental Vul.– Post-access Vul.
• Incremental Vul.– Compute vulnerability
from the last access– Total Vul. = Sum of
Incremental Vul. 04/22/23 http://www.public.asu.edu/~ashriva622
Cold Miss
Last Access
![Page 23: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/23.jpg)
CCMMLLCCMMLL
Computing Computing VulnerabilityVulnerability
Two key ideas:
1.If vulnerability at iteration j = l– Make l copies of vector j
2.Compute Non-vulnerability– And then subtract it from total possible
vulnerability
04/22/23 http://www.public.asu.edu/~ashriva623
![Page 24: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/24.jpg)
CCMMLLCCMMLL
Computing Computing VulnerabilityVulnerability
• Access Non Vulnerability
• If no k exists– ANV = ф
04/22/23 http://www.public.asu.edu/~ashriva624
ZnIkcjvANV qr ,|),{()(
|)|||0(& kjc )},,(& vkjCME q
r
j
j -v
HIT
![Page 25: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/25.jpg)
CCMMLLCCMMLL
Computing Computing VulnerabilityVulnerability
• Access Non Vulnerability
• If a k exists– Then ANV
= {(j,1), (j,2), …(j,|j|-|k|)}
04/22/23 http://www.public.asu.edu/~ashriva625
ZnIkcjvANV qr ,|),{()(
|)|||0(& kjc )},,(& vkjCME q
r
j
j -v
MISS
ANV contains all the points on the RED line
ANV contains all the points on the RED line
![Page 26: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/26.jpg)
CCMMLLCCMMLL
Computing Computing VulnerabilityVulnerability
• Access Non Vulnerability
• If multiple k exist– Then ANV =
{(j,1), (j,2), …(j,|j|-|k*|)}– Where k* is the smallest k
04/22/23 http://www.public.asu.edu/~ashriva626
ZnIkcjvANV qr ,|),{()(
|)|||0(& kjc )},,(& vkjCME q
r
j
j -v
MISS
kk
k*
![Page 27: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/27.jpg)
CCMMLLCCMMLL
Computing Computing VulnerabilityVulnerability
• Access Non Vulnerability across references
– ANV for multiple references is the maximum of the individual ANVs
04/22/23 http://www.public.asu.edu/~ashriva627
Rq
rrr vANVvANV
)()(
j
j -v
MISS
k1,qk2,s
k*
![Page 28: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/28.jpg)
CCMMLLCCMMLL
Computing Computing VulnerabilityVulnerability
• Access Vulnerability
– AV = Total possible vulnerability - ANV
04/22/23 http://www.public.asu.edu/~ashriva628
)(|)|*|(| vANVIvAV rr
j
j -v
MISS
k*
![Page 29: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/29.jpg)
CCMMLLCCMMLL
Why not compute AV Why not compute AV directly?directly?
• We computed
• What if we compute
04/22/23 http://www.public.asu.edu/~ashriva629
ZnIkcjvAV qr ,|),{()(
)|||(|& kcvj
)},,(& vkjCME qr
j
j -v
ZnIkcjvANV qr ,|),{()(
|)|||0(& kjc
)},,(& vkjCME qr
ZnIkcjvAV qr ,|),{()(
k1k2
![Page 30: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/30.jpg)
CCMMLLCCMMLL
Other IssuesOther Issues• Identifying cold misses• Computing post-access vulnerability• Cache block effect• Translating from iterations to cycles• Derived reuse vectors• Computing no. of elements in a set
04/22/23 http://www.public.asu.edu/~ashriva630
![Page 31: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/31.jpg)
CCMMLLCCMMLL
OutlineOutline• Growing threat of soft errors• Efficient techniques needed for L1
cache protection• Need efficient techniques to estimate
vulnerability• Cache Miss Equations• Vulnerability Calculations• Experiments
04/22/23 http://www.public.asu.edu/~ashriva631
![Page 32: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/32.jpg)
CCMMLLCCMMLL
Experimental Experimental SetupSetup
• Simplify CVEs in Omega– Output: set containing vulnerability of loop.
• Count the number of elements with Barvinok
• Benchmark kernels from Spec200 and Multimedia kernels
• Simplescalar configured to single-issue in-order processor with 32KB direct mapped data cache and 25 cycle L1 miss penalty
04/22/23 http://www.public.asu.edu/~ashriva632
![Page 33: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/33.jpg)
CCMMLLCCMMLL
Interesting Trade-off Interesting Trade-off exists!exists!
04/22/2333 http://www.public.asu.edu/~ashriva6
46% vulnerability reduction for 16% runtime trade-off
55% vulnerability reduction for 6.5% runtime improvement
![Page 34: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/34.jpg)
CCMMLLCCMMLL
ValidationValidation
04/22/23 http://www.public.asu.edu/~ashriva634
High Correlation between ACV and CV
Variation in CV: 19XVariation in Runtime: 1.7X Can trade off lot of vulnerability with little performance impact
Min Vul: ikjMin Runtime: ijk Not the same trend
Min Vul with only 5.7% runtime penalty
![Page 35: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/35.jpg)
CCMMLLCCMMLL
Application of CVE (case Application of CVE (case study)study)
04/22/23 http://www.public.asu.edu/~ashriva635
• Cache vulnerability calculated for varying array placement offsets on swim
![Page 36: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/36.jpg)
CCMMLLCCMMLL
ConclusionConclusion• Soft Errors are soon to become a major concern even in terrestrial
computing systems• Caches are most vulnerable, and for L1 cache:
– ECC is costly– ECC may not be enough
• Need nimble techniques to reduce vulnerability without much power and performance overheads
• Compiler techniques can change the read/write access pattern of data– therefore can effect vulnerability of program
• Interesting trade-off between vul. and runtime may exist in code generation
• Exploiting them using simulation may not be feasible– Need efficient techniques to estimate vulnerability
• Proposed re-use vector based analysis to estimate vulnerability– Starting point for compiler support
04/22/23 http://www.public.asu.edu/~ashriva636
![Page 37: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/37.jpg)
CCMMLLCCMMLL
Questions?Questions?
04/22/23 http://www.public.asu.edu/~ashriva637
![Page 38: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/38.jpg)
CCMMLLCCMMLL
Hit VulnerabilityHit Vulnerability
k
j
i
(0,0,0)
i = N
Reuse Direction:Reuse Direction: Direction along which the data
element is reused.
Access Iterations:- Iterations accessing the array element.
)}()(:{)( iMemAddrjMemAddrjiAI
Cache Miss Iterations:- Iterations at which reuse is not realized due to reference X (same or different)
)}0),,[),)()((::{)( npjknCskCacheAddrjCacheAddrkjiCM XCX
Vulnerable Accesses (Cache Hits):- Iterations at which the reuse is realized (hits).
CMAIVA
i
Vulnerable Iterations (Read Vulnerability):- Iterations between successive reuses.
rVAVI
xx
CMCM
Access Iteration
Cache Miss Iteration
|)|( rip
04/22/2338 http://www.public.asu.edu/~ashriva6
![Page 39: Cache Vulnerability Equations for Protecting Data in Embedded Processor Caches from Soft Errors](https://reader036.vdocument.in/reader036/viewer/2022081517/568159df550346895dc72a06/html5/thumbnails/39.jpg)
CCMMLLCCMMLL
Miss VulnerabilityMiss VulnerabilityCache Interference Points (CIP)- The set of possible interference points { j }
x
y
p
i
VI
j2
j4
j3
j1q
}0),,[),)()((:),{(),( nipjnCsjCacheAddriCacheAddrjijiCIP XX
)}&),(::),{(),( ivjjiCIPjjviviII XX
|),(||||),()(| viIIrviIIpiVI
Vulnerable Iterations
r
),(),( viIIviII XX
Vulnerability |||)||(| IIrAI
|)|( rip
Intermediate Iterations- The set of Intermediate Iterations { v }
The set of points between any existing j and the iteration i.
All v points are greater than the first CIP for every iteration i.
04/22/2339 http://www.public.asu.edu/~ashriva6