예를들어 어떤 메모리 공간을 할당받은 다음에... strcpy로 copy한경우... 일단은 캐시에 써지는걸로 알고있는데요. 곧장 메모리에 써지게 하려면 어떻게 해야하나요.
일단 C++ 표준에 그런 이야기는 없을 것 같구요.
volatile 정도인가요? 음...
C++ 표준에 있다고 해도 안될겁니다.
이건 cpu 구조상의 문제이고, 여기에 대해서는 캐시 정책을 바꾸는 등의 하드웨어적인 처리가 따라야 할겁니다.
일반적인 경우 시스템 메모리는 write-back으로 설정되어 있고, IO-mapped area(비디오메모리 등 하드웨어 입출력용에 사용되는 영역)인 경우 write-through로 설정됩니다,
참고로 write-through는 읽기만 캐시하는 것이고, write-back은 읽기 쓰기 모두 캐시 대상이 됩니다
Written By the Black Knight of Destruction
include/asm/system.h 에 정의되어 있는 mb() 를 써보세요.
곧장 쓰는 방법은 없고 쓴 다음에 캐시를 플러시 하는 방법을 사용합니다.
만약 애플리케이션 프로그램이라면, 캐시는 transparent 하니까 이런 함수는 써서도 안되고, 쓸 필요도 없고, 아예 캐시의 존재 자체에 대해서 생각을 할 필요가 없습니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
최적화 방지인가요?
일단 C++ 표준에 그런 이야기는 없을 것 같구요.
volatile 정도인가요? 음...
C++ 표준에 있다고 해도 안될겁니다.이건 cpu 구조상의 문제이
C++ 표준에 있다고 해도 안될겁니다.
이건 cpu 구조상의 문제이고, 여기에 대해서는 캐시 정책을 바꾸는 등의
하드웨어적인 처리가 따라야 할겁니다.
일반적인 경우 시스템 메모리는 write-back으로 설정되어 있고,
IO-mapped area(비디오메모리 등 하드웨어 입출력용에 사용되는 영역)인
경우 write-through로 설정됩니다,
참고로 write-through는 읽기만 캐시하는 것이고, write-back은 읽기 쓰기 모두
캐시 대상이 됩니다
Written By the Black Knight of Destruction
include/asm/system.h 에 정의되어 있는 mb() 를 써보
include/asm/system.h 에 정의되어 있는 mb() 를 써보세요.
곧장 쓰는 방법은 없고 쓴 다음에 캐시를 플러시 하는 방법을 사용합니다.
만약 애플리케이션 프로그램이라면, 캐시는 transparent 하니까 이런 함수는 써서도 안되고, 쓸 필요도 없고, 아예 캐시의 존재 자체에 대해서 생각을 할 필요가 없습니다.
댓글 달기