prefetchable 이라는 단어 설명좀 부탁합니다.

은영신랑의 이미지

register중에 prefetchable이라는 단어가 있는데요,

어떤 의미인지 좀 알려주세요...

감사합니다.

익명 사용자의 이미지

질문이 모호해서 답도 모호하게 하겠습니다. 양해를... 8)

일반적으로 프리페치가 가능하다는 것은 사용하기 전에 미리 CPU 캐시 라인에 올려 둘 수 있다는 것을 뜻합니다. 그럼 실제로 사용할 때에는 페치를 해올 필요가 없어서 성능이 훨씬 빨라지겠죠? 물론 프리페치 명령 자체의 클럭 소모때문에 경우에 따라서는 성능이 오히려 감소할 때도 있습니다.

그런데 레지스터를 프리페치할 수 있다는 얘기는 무슨 뜻인지...? 레지스터는 항상 CPU안에 있으므로 캐시 라인과 무관하게 동작하는데요.

은영신랑의 이미지

제가 질문한 이야기가 리눅스 디바이스 드라이버에 책이 나오거든요.

" 메모리와 I/O공간 사이의 구조적인 차이는 메모리를 미리 가져올 수 있음
(prefetchable)비트를 구현함으로써 제기되었다. PCI 보드에 있는 비디오
메모리와 같은 것은 미리 가져올 수 있는 반면, 제어 레지스터를 메모리 주소
범위로 맵핑하는 주변 장치들은 그 범위를 미리 가져올 수 없는
(non-prefetchable)것으로 선언한다. "

가져온다는 것과 가져올 수 없다는 것의 차이를 질문한것 이었습니다.
PCI 디바이스에서 제어 레지스터의 정확한 크기를 모르기 떄문에 못가져오는
건지 아니면 다른 이유가 있는건지가 궁금하더라구요.

감사합니다.