Write Back 정책 관련

찌록   
   조회 4382   추천 0    

안녕하십니까..

Write Back 에 대해 궁금중이 있습니다.(줄여서 W-B 으로 칭하겠습니다)


W-B 방식은 데이터가 캐시에 기록되자마자 OS단에 I/O 처리가 완료됨을 알리고 실제 디스크에 기록되는 작업은 내부적으로 수행된다

라고 알고있습니다.


그런데 저 "캐시" 라는 것은 CPU 캐시를 말하는건가요 아니면 RAID Controller의 Cache를 말하는 걸까요..?

보통 데이터는 CPU(L1/L2 Cache 등) - 주기억장치(Memory) - 보조기억장치 의 식으로 흘러가지 않습니까?

CPU에서 처리하면 cpu cache를 거쳐 memory에 올라가고 메모리에 올라간 데이터가 디스크에 기록되는 방식..


만약 W-B 방식이 레이드 캐시에 기록되는것이라면 메모리를 거쳐서 레이드캐시로 전달되는 것 아닌가요?


이 방식에 대한 궁금증을 가진 이유는 W-B 모드를 사용하면 BBU가 필요한데 그것은 raid controller의 캐시메모리에 저장된 데이터를 보호하는 역할로써 필요한건데.. 그렇게 생각하면 CPU 캐시메모리는 아닌거같고.. raid 캐시메모리라면 메모리를 거쳐서 전달받는 구조로 알고있는데 그게 아닌건지..


궁금한 것은 이것입니다..

- W-B에서 말하는 cache가 cpu 것인지 raid controller 것인지..

- 캐시가 enable 된 raid controller 로 구성되어있을 시 데이터 전달방식이 어떻게 되는건지..


항상 질문드리면 정성껏 답변해주셔서 모든 분들께 감사하고 또 죄송한 마음으로 질문드립니다.

감사합니다..!

so
짧은글 일수록 신중하게.
박문형 2021-07
캐쉬 (캐쉬 메모리 + 캐쉬 콘트롤러)는 어떤 속도 차이가 큰 장치 사이에서 그 속도 차이를 줄이고 좀 더 부드럽게 동작하도록 하게 만드는 장치 입니다..

CPU의 동작속도 (일처리 속도)는 아주 빨라서 그것과 똑같이 동작하는 메모리를 만들려면 제조단가가 아주 높아지던지 제조가 불가능할 수 있습니다..

그래서 그 중간에 캐쉬 장치를 두어서 콘트롤하는 것입니다..

그리고 캐쉬 장치에 흐르는 데이터를 콘트롤하는 방식 (캐슁 방식/방법) 중에 대표적인 것이 Write Through /Write Back 방식입니다..


Write Through 방식은

1234  -> 캐쉬 -->1234    (1234는 데이터)

이런식으로 데이터 가 들어간 순서대로 데이터가 나오는 방식이고

Write Back 방식은

1234 ->캐쉬 -->1432 (1234는 데이터)

이런 식으로 데이터가 순차적으로 들어가더라도 데이터를 받는쪽에서 요청하는 데이터를 먼저 빼내오는 방식입니다..

먼저 필요한 데이터를 먼저 불러내니까 성능이 증가하는 것이고요..

이것이 다 맞지는 않기에 그리고 나중에는 불러내지 않은 데이터는 계속 캐쉬메모리에 남아 있을수도 있기에 어떨 때는 Write Through 보다 성능이

떨어질 수 있습니다..

이런 성능을 캐슁 히트율이라고 말하는데 보통 캐쉬 히트율이 90% 이상 되어야 좋은 것이다라고 말하고 있습니다..


CPU에도 캐쉬 콘트롤러가 쓰이고 캐슁 방식이 존재합니다만 아마도 요즘 시스템은 CPU의 캐슁 방식을 사용자가 임의적으로 바꿀수는 없을 것입니다..

반일 그런 방법이 있다면 바이오스에서 셋팅 메뉴가 존재해야겠죠..


지금 질문도 어찌 보면 레이드 장비에 대해 이야기 하는데 CPU가 중간에 섞여 있습니다..

레이드 콘트롤러 안의 셋팅메뉴를 셋팅하는데 CPU 까지 콘트롤되지는 않습니다..


그리고 데이터의 흐름으로 보면

디스크 - 레이드 콘트롤러 -- 레이드 콘트롤러 케쉬 메모리 -- 레이드 콘트롤러 -- PCIe 라인 -- CPU - CPU 캐쉬 -- 시스템 메모리

-- CPU 캐쉬 --CPU -- PCIe 라인 -- 레이드 콘트롤러 - 레이드 콘트롤러 캐쉬 메모리 -- 레이드 콘트롤러 -- 디스크

이정도 입니다.. (시스템 종류에 따라 세부 사항은 바뀔수 있음)
     
치로기 2021-07
결국 쓰기정책에서 말하는 캐시는 레이드 컨트롤러의 캐시만을 말하는거군요?
데이터는 CPU로 부터 시작되는것이 아닌가요..?
윈도우에서 메모장에 어떠한 파일을 저장했다고 했을 때 데이터의 흐름이 CPU(캐시) - 메모리 - PCIe - 레이드 - 디스크 가 아닌건가요?
          
박문형 2021-07
윈도우에서 메모장에 어떠한 파일을 저장했다고 했을 때 데이터의 흐름



메모장이 데이터를 불러들여서 작업하고 수정되어 저장된다면 디스크에서 불려들인다라고 볼 수 있고

메모장에서 새로운 데이터를 만든다고 보면 캐쉬 메모리로부터 생성은 아니고 시스템 주메모리로부터라고 보는게 맞다라고 생각됩니다..
박문형 2021-07


QnA
제목Page 3776/5718
2014-05   5206461   정은준1
2015-12   1738385   백메가
2015-02   4364   트리플소켓
2015-08   4364   AplPEC
2013-12   4364   witbox
2015-06   4364   김건우
2016-10   4364   박문형
2015-03   4364   죠슈아
2015-11   4364   알팡
2014-07   4364   김황중
2018-05   4364   서형호
2020-08   4364   starname
2017-06   4364   그린
2019-09   4364   명랑
2019-02   4364   정은준1
2016-06   4364   그늘
2018-06   4364   osthek83
2020-09   4364   향촌
2016-04   4364   NAS고장났다…
2015-07   4363   전설속의미…
2016-02   4363   명성호
2020-11   4363   Jgon