• 카테고리

    질문 & 답변
  • 세부 분야

    게임 프로그래밍

  • 해결 여부

    미해결

준비상태->실행상태 이동 시 레지스터와 캐시 상태 질문

21.09.03 22:03 작성 조회수 196

0

CPU타임을 할당받아 준비상태에서 깨어나게 될 시,

PCB에 있는 정보를 레지스터에 저장한다고 말씀해주셨는데요, 캐시 상태에 대해서도 궁금해서 질문드립니다. 스레드 혹은 프로세스 전환을 하게 되면 이전의 cache 정보는 필요가 없으니 flush 될 것 같은데요, 구글링과 스택 오버 플로우를 통해 정보를 얻고 아래 질문들을 하고 싶어졌습니다.

이정돈 알아서 해라! 싶은 질문은 넘겨주세요.

1.

상태 전이 시, cache가 clear되나요(memory mapping을 어떻게 하느냐에 따라 하지 않을수도 있을것 같은데, 하지 않는 mapping방식이 실제로 쓰는가 혹은 이론상 그런것이냐도 의문입니다)?

2.

그렇다면, 실행->대기, 대기->준비, 실행->준비 3가지 이동 중 어떤 단계에서 flush가 일어나나요?

3.

문맥 교환 시에는 memory mapping이 초기화 되고 바뀔텐데요, memory mapping이 바뀌지 않는 경우도 있을까요? (memory mapping 을 어떻게 하느냐에 따라 다를것 같기는 한데,,, 수업 들을 때 memory mapping을 어떻게 하는지에 대한 방법론?을 배우고 종류나 그에 따른 trade-off를 배우지 않아 확실하게 알고 있지는 않습니다.)

4.

아래 사이트를 참고했을 때, 

[Architecture] MMU improvements (tistory.com)

가장 빠른 방법이 Cache-Indexed, Virtually-tagged cache방식을 사용하는 것이고, 이를 위해서는 캐시 용량을 증대시켜야 한다고 이해했습니다. 이번 라이젠 5000번대의 성능이 비약적으로 증가한 이유가 cache 용량이 2배가 뻥튀기 돼서 위와 같이 cache를 더 잘 활용해서 라고 이해하면 될까요?

답변 1

답변을 작성해보세요.

0

질문주신 부분은 프로세서나 운영체제에 따라
다를 수 있기 때문에 지나치게 세부적인 질문입니다.
아래 링크 답변을 참고 바랍니다.

https://cs.stackexchange.com/questions/1088/what-happens-to-the-cache-contents-on-a-context-switch