Lines Matching refs:B

183 	{ A == 1; B == 2 }
184 A = 3; x = B;
185 B = 4; y = A;
190 STORE A=3, STORE B=4, y=LOAD A->3, x=LOAD B->4
191 STORE A=3, STORE B=4, x=LOAD B->4, y=LOAD A->3
192 STORE A=3, y=LOAD A->3, STORE B=4, x=LOAD B->4
193 STORE A=3, y=LOAD A->3, x=LOAD B->2, STORE B=4
194 STORE A=3, x=LOAD B->2, STORE B=4, y=LOAD A->3
195 STORE A=3, x=LOAD B->2, y=LOAD A->3, STORE B=4
196 STORE B=4, STORE A=3, y=LOAD A->3, x=LOAD B->4
197 STORE B=4, ...
217 { A == 1, B == 2, C == 3, P == &A, Q == &C }
218 B = 4; Q = P;
219 P = &B D = *Q;
226 (Q == &B) and (D == 2)
227 (Q == &B) and (D == 4)
306 X = *A; Y = *B; *D = Z;
310 X = LOAD *A, Y = LOAD *B, STORE *D = Z
311 X = LOAD *A, STORE *D = Z, Y = LOAD *B
312 Y = LOAD *B, X = LOAD *A, STORE *D = Z
313 Y = LOAD *B, STORE *D = Z, X = LOAD *A
314 STORE *D = Z, X = LOAD *A, Y = LOAD *B
315 STORE *D = Z, Y = LOAD *B, X = LOAD *A
594 { A == 1, B == 2, C == 3, P == &A, Q == &C }
595 B = 4;
597 WRITE_ONCE(P, &B)
601 여기엔 분명한 데이터 의존성이 존재하므로, 이 시퀀스가 끝났을 때 Q 는 &A 또는 &B
605 (Q == &B) 는 (D == 4) 를 의미합니다.
607 하지만! CPU 2 는 B 의 업데이트를 인식하기 전에 P 의 업데이트를 인식할 수 있고,
610 (Q == &B) and (D == 2) ????
621 { A == 1, B == 2, C == 3, P == &A, Q == &C }
622 B = 4;
624 WRITE_ONCE(P, &B);
636 P 는 짝수 번호 캐시 라인에 저장되어 있고, 변수 B 는 홀수 번호 캐시 라인에
639 중이라면 포인터 P (&B) 의 새로운 값과 변수 B 의 기존 값 (2) 를 볼 수 있습니다.
651 { A == 1, B == 2, C = 3, P == &A, Q == &C }
652 B = 4;
654 WRITE_ONCE(P, &B);
662 (Q == &B) && (B == 4)
999 STORE B = 2
1006 { STORE A, STORE B, STORE C } 가 역시 원소끼리의 순서가 존재하지 않는 집합
1016 | CPU 1 | : | B=2 | }
1036 { B = 7; X = 9; Y = 8; C = &Y }
1038 STORE B = 2
1040 STORE C = &B LOAD X
1041 STORE D = 4 LOAD C (gets &B)
1042 LOAD *C (reads B)
1049 | |------>| B=2 |----- --->| Y->8 | | 업데이트 이벤트
1055 | | : | C=&B |--- | : : +-------+
1057 | |------>| D=4 | ----------->| C->&B |------>| |
1063 분명히 잘못된 ---> | | B->7 |------>| |
1064 B 의 값 인지 (!) | +-------+ | |
1067 X 의 로드가 B 의 ---> \ | X->9 |------>| |
1069 지연시킴 ----->| B->2 | +-------+
1074 앞의 예에서, CPU 2 는 (B 의 값이 될) *C 의 값 읽기가 C 의 LOAD 뒤에 이어짐에도
1075 B 가 7 이라는 결과를 얻습니다.
1077 하지만, 만약 데이터 의존성 배리어가 C 의 로드와 *C (즉, B) 의 로드 사이에
1082 { B = 7; X = 9; Y = 8; C = &Y }
1084 STORE B = 2
1086 STORE C = &B LOAD X
1087 STORE D = 4 LOAD C (gets &B)
1089 LOAD *C (reads B)
1095 | |------>| B=2 |----- --->| Y->8 |
1101 | | : | C=&B |--- | : : +-------+
1103 | |------>| D=4 | ----------->| C->&B |------>| |
1113 뒤의 로드에게 ----->| B->2 |------>| |
1123 { A = 0, B = 9 }
1126 STORE B=2
1127 LOAD B
1137 | CPU 1 | wwwwwwwwwwwwwwww \ --->| B->9 |
1139 | |------>| B=2 |--- | : :
1142 ---------->| B->2 |------>| |
1154 하지만, 만약 읽기 배리어가 B 의 로드와 A 의 로드 사이에 존재한다면:
1158 { A = 0, B = 9 }
1161 STORE B=2
1162 LOAD B
1172 | CPU 1 | wwwwwwwwwwwwwwww \ --->| B->9 |
1174 | |------>| B=2 |--- | : :
1177 ---------->| B->2 |------>| |
1182 B 로의 스토어 전의 \ +-------+ | |
1193 { A = 0, B = 9 }
1196 STORE B=2
1197 LOAD B
1202 A 의 로드 두개가 모두 B 의 로드 뒤에 있지만, 서로 다른 값을 얻어올 수
1209 | CPU 1 | wwwwwwwwwwwwwwww \ --->| B->9 |
1211 | |------>| B=2 |--- | : :
1214 ---------->| B->2 |------>| |
1222 B 로의 스토어 전의 \ +-------+ | |
1235 | CPU 1 | wwwwwwwwwwwwwwww \ --->| B->9 |
1237 | |------>| B=2 |--- | : :
1240 ---------->| B->2 |------>| |
1254 여기서 보장되는 건, 만약 B 의 로드가 B == 2 라는 결과를 봤다면, A 에의 두번째
1276 LOAD B
1285 --->| B->2 |------>| |
1303 LOAD B
1315 --->| B->2 |------>| |
1337 --->| B->2 |------>| |
1384 원자성으로부터 나옵니다: CPU B 에서 수행된 로드가 CPU A 의 같은 변수로부터의
1386 하지 않았다면) multicopy 원자성을 제공하는 시스템에서는, CPU B 의 로드가 CPU A
1997 *B = b;
2001 ACQUIRE M, STORE *B, STORE *A, RELEASE M
2017 *B = b;
2021 ACQUIRE N, STORE *B, STORE *A, RELEASE M
2059 *B = b;
2069 ACQUIRE, {*F,*A}, *E, {*C,*D}, *B, RELEASE
2075 {*F,*A}, *B, ACQUIRE, *C, *D, RELEASE, *E
2076 *A, *B, *C, ACQUIRE, *D, RELEASE, *E, *F
2077 *A, *B, ACQUIRE, *C, RELEASE, *D, *E, *F
2078 *B, ACQUIRE, *C, *D, RELEASE, {*F,*A}, *E
2259 WRITE_ONCE(*B, b); WRITE_ONCE(*F, f);
2269 *E, ACQUIRE M, ACQUIRE Q, *G, *C, *F, *A, *B, RELEASE Q, *D, *H, RELEASE M
2273 *B, *C or *D preceding ACQUIRE M
2274 *A, *B or *C following RELEASE M
2719 두개의 CPU (1 & 2) 가 달려 있고, 각 CPU 에 두개의 데이터 캐시(CPU 1 은 A/B 를,
2730 +--------+ : +--->| Cache B |<------->| |
2747 (*) 짝수번 캐시라인은 캐시 B, 캐시 D 또는 메모리에 위치할 수 있음;
2772 <B:modify p=&v> p 는 이제 캐시 B 에 독점적으로 존재함
2798 <B:modify p=&v> <D:commit p=&v>
2824 <B:modify p=&v> <D:commit p=&v>
2892 WRITE_ONCE(*B, b);
2901 LOAD *A, STORE *B, LOAD *C, LOAD *D, STORE *E.
2932 LOAD *A, ..., LOAD {*C,*D}, STORE *E, STORE *B