'순치실행'에 해당되는 글 1건
- 2009.09.23 asm as "memory barrier"
최근의 CPU들은 프로그램의 명령어를 효율적으로 처리하기 위해
명령어들을 "재배치"해서execution한다... 물론 Runtime 시의 이야기...
이런 기법은 꽤 오래전부터 적용되어 있고 Out-of-order Execution이라 한다.
참고로 ATOM 같은 CPU는 In-Order 방식, -> 그래서 저전력 저성능이 가능했던것
(아톰의 1Ghz와 다른 인텔의 1Ghz는 이런 곳에서 차이가 난다)
우리 말로 순차실행방식.위에것은 비순차실행방식정도가 되겠지.
이 때 물론 결과가 똑같도록 Order를 바꾸지만, 여러 CPU간에도 서로가 서로를 볼 때도
바꾼 결과가 영향을 미쳐서는 안된다.
그래서 Memory Barrier를 사용해서 Re-Ordering을 막는다.
S/W적인 방법과 H/W적인 방법이 있다고함.
ARM에서 제공하는 것도 있고, GCC에서만 가능한 asm volatile같은 것..
관련 링크들
http://www.embeddedrelated.com/usenet/embedded/show/17547-1.php
http://lksas4-arm11.springnote.com/pages/899194
http://gcc.gnu.org/ml/gcc/2003-04/msg01180.html