Lines Matching refs:B
181 { A == 1; B == 2 }
182 A = 3; x = B;
183 B = 4; y = A;
188 STORE A=3, STORE B=4, y=LOAD A->3, x=LOAD B->4
189 STORE A=3, STORE B=4, x=LOAD B->4, y=LOAD A->3
190 STORE A=3, y=LOAD A->3, STORE B=4, x=LOAD B->4
191 STORE A=3, y=LOAD A->3, x=LOAD B->2, STORE B=4
192 STORE A=3, x=LOAD B->2, STORE B=4, y=LOAD A->3
193 STORE A=3, x=LOAD B->2, y=LOAD A->3, STORE B=4
194 STORE B=4, STORE A=3, y=LOAD A->3, x=LOAD B->4
195 STORE B=4, ...
215 { A == 1, B == 2, C == 3, P == &A, Q == &C }
216 B = 4; Q = P;
217 P = &B D = *Q;
224 (Q == &B) and (D == 2)
225 (Q == &B) and (D == 4)
304 X = *A; Y = *B; *D = Z;
308 X = LOAD *A, Y = LOAD *B, STORE *D = Z
309 X = LOAD *A, STORE *D = Z, Y = LOAD *B
310 Y = LOAD *B, X = LOAD *A, STORE *D = Z
311 Y = LOAD *B, STORE *D = Z, X = LOAD *A
312 STORE *D = Z, X = LOAD *A, Y = LOAD *B
313 STORE *D = Z, Y = LOAD *B, X = LOAD *A
597 { A == 1, B == 2, C == 3, P == &A, Q == &C }
598 B = 4;
600 WRITE_ONCE(P, &B)
607 여기엔 분명한 주소 의존성이 존재하므로, 이 시퀀스가 끝났을 때 Q 는 &A 또는 &B
611 (Q == &B) 는 (D == 4) 를 의미합니다.
613 하지만! CPU 2 는 B 의 업데이트를 인식하기 전에 P 의 업데이트를 인식할 수 있고,
616 (Q == &B) and (D == 2) ????
627 { A == 1, B == 2, C == 3, P == &A, Q == &C }
628 B = 4;
630 WRITE_ONCE(P, &B);
642 P 는 짝수 번호 캐시 라인에 저장되어 있고, 변수 B 는 홀수 번호 캐시 라인에
645 중이라면 포인터 P (&B) 의 새로운 값과 변수 B 의 기존 값 (2) 를 볼 수 있습니다.
657 { A == 1, B == 2, C = 3, P == &A, Q == &C }
658 B = 4;
660 WRITE_ONCE(P, &B);
668 (Q == &B) && (B == 4)
1006 STORE B = 2
1013 { STORE A, STORE B, STORE C } 가 역시 원소끼리의 순서가 존재하지 않는 집합
1023 | CPU 1 | : | B=2 | }
1043 { B = 7; X = 9; Y = 8; C = &Y }
1045 STORE B = 2
1047 STORE C = &B LOAD X
1048 STORE D = 4 LOAD C (gets &B)
1049 LOAD *C (reads B)
1056 | |------>| B=2 |----- --->| Y->8 | | 업데이트 이벤트
1062 | | : | C=&B |--- | : : +-------+
1064 | |------>| D=4 | ----------->| C->&B |------>| |
1070 분명히 잘못된 ---> | | B->7 |------>| |
1071 B 의 값 인지 (!) | +-------+ | |
1074 X 의 로드가 B 의 ---> \ | X->9 |------>| |
1076 지연시킴 ----->| B->2 | +-------+
1081 앞의 예에서, CPU 2 는 (B 의 값이 될) *C 의 값 읽기가 C 의 LOAD 뒤에 이어짐에도
1082 B 가 7 이라는 결과를 얻습니다.
1084 하지만, 만약 주소 의존성 배리어가 C 의 로드와 *C (즉, B) 의 로드 사이에
1089 { B = 7; X = 9; Y = 8; C = &Y }
1091 STORE B = 2
1093 STORE C = &B LOAD X
1094 STORE D = 4 LOAD C (gets &B)
1096 LOAD *C (reads B)
1102 | |------>| B=2 |----- --->| Y->8 |
1108 | | : | C=&B |--- | : : +-------+
1110 | |------>| D=4 | ----------->| C->&B |------>| |
1120 뒤의 로드에게 ----->| B->2 |------>| |
1130 { A = 0, B = 9 }
1133 STORE B=2
1134 LOAD B
1144 | CPU 1 | wwwwwwwwwwwwwwww \ --->| B->9 |
1146 | |------>| B=2 |--- | : :
1149 ---------->| B->2 |------>| |
1161 하지만, 만약 읽기 배리어가 B 의 로드와 A 의 로드 사이에 존재한다면:
1165 { A = 0, B = 9 }
1168 STORE B=2
1169 LOAD B
1179 | CPU 1 | wwwwwwwwwwwwwwww \ --->| B->9 |
1181 | |------>| B=2 |--- | : :
1184 ---------->| B->2 |------>| |
1189 B 로의 스토어 전의 \ +-------+ | |
1200 { A = 0, B = 9 }
1203 STORE B=2
1204 LOAD B
1209 A 의 로드 두개가 모두 B 의 로드 뒤에 있지만, 서로 다른 값을 얻어올 수
1216 | CPU 1 | wwwwwwwwwwwwwwww \ --->| B->9 |
1218 | |------>| B=2 |--- | : :
1221 ---------->| B->2 |------>| |
1229 B 로의 스토어 전의 \ +-------+ | |
1242 | CPU 1 | wwwwwwwwwwwwwwww \ --->| B->9 |
1244 | |------>| B=2 |--- | : :
1247 ---------->| B->2 |------>| |
1261 여기서 보장되는 건, 만약 B 의 로드가 B == 2 라는 결과를 봤다면, A 에의 두번째
1283 LOAD B
1292 --->| B->2 |------>| |
1310 LOAD B
1322 --->| B->2 |------>| |
1344 --->| B->2 |------>| |
1391 원자성으로부터 나옵니다: CPU B 에서 수행된 로드가 CPU A 의 같은 변수로부터의
1393 하지 않았다면) multicopy 원자성을 제공하는 시스템에서는, CPU B 의 로드가 CPU A
2012 *B = b;
2016 ACQUIRE M, STORE *B, STORE *A, RELEASE M
2032 *B = b;
2036 ACQUIRE N, STORE *B, STORE *A, RELEASE M
2074 *B = b;
2084 ACQUIRE, {*F,*A}, *E, {*C,*D}, *B, RELEASE
2090 {*F,*A}, *B, ACQUIRE, *C, *D, RELEASE, *E
2091 *A, *B, *C, ACQUIRE, *D, RELEASE, *E, *F
2092 *A, *B, ACQUIRE, *C, RELEASE, *D, *E, *F
2093 *B, ACQUIRE, *C, *D, RELEASE, {*F,*A}, *E
2283 WRITE_ONCE(*B, b); WRITE_ONCE(*F, f);
2293 *E, ACQUIRE M, ACQUIRE Q, *G, *C, *F, *A, *B, RELEASE Q, *D, *H, RELEASE M
2297 *B, *C or *D preceding ACQUIRE M
2298 *A, *B or *C following RELEASE M
2740 WRITE_ONCE(*B, b);
2749 LOAD *A, STORE *B, LOAD *C, LOAD *D, STORE *E.
2780 LOAD *A, ..., LOAD {*C,*D}, STORE *E, STORE *B