특정 메모리 주소는 일반 메모리가 아닌 장치 레지스터가 될 수 있음. 이 주소값은 동일한 스레드가 두 번 연속해서 읽는 사이에 변할수 있음. 변수를 volatile로 선언하면 레지스터에 값을 저장하고 재사용함으로 프로그램을 최적화 하는 대신, 컴파일러가 변수의 새 복사본을 가져옴
메모리를 단순 선형 바이트 저장소인 것처럼 작동하게 만듬