• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

0.6 컴퓨터 메모리의 기본 구조 질문

23.04.06 08:27 작성 조회수 510

1

0.6 파트에서 질문 드릴 것이 있어 글 작성합니다.

 

  1. cpu가 ram으로부터 필요한 정보를 빼올 때, 메모리의 데이터는 항상 캐쉬 메모리에 저장된 뒤에 cpu에서 그 데이터를 연산하는 건가요?

  2. 캐쉬 메모리 덕분에 자주 사용되는 데이터를 ram에 직접 요청하지 않고도 cpu가 가져와 사용할 수 있는 것 같은데, 이때 자주 사용되는 데이터가 되는 기준은 무엇인가요?

  3. cpu가 ram에게 '어느 주소에 있는 데이터를 보내세요.'라는 요청을 할 때, 그 요청을 control bus가 전달하는 건가요? 그리고 강의를 보면 ram이 그 요청을 수락할 수도 거절할 수도 있는 것 같은데, 이 수락과 거절의 개념이 잘 와 닿지 않습니다. ram이 cpu의 요청을 거절하는 특정한 예시 하나 정도만 이야기해주시면 감사하겠습니다.

 

질문 들어주셔서 감사합니다.

답변 1

답변을 작성해보세요.

2

Soobak님의 프로필

Soobak

2023.04.06

안녕하세요, 답변 도우미 Soobak 입니다. 🍉

질문 1.)
: '항상' 이라고 표현하기에는 조금 애매한 것 같습니다. 일부 시스템에서는 CPU 가 직접 RAM 에서 데이터를 가져올 수 있는 기능을 제공합니다. DMA, (Direct Memory Access) 키워드로 검색을 해보시면 도움이 될 것 같습니다.

질문 2.)
: 주로 두 가지 원칙에 의해 결정됩니다.
(1) 시간 지역성(Temporal Locality)
(2) 공간 지역성(Spatial Locality)
자세히 설명드리기에는 내용이 깊이가 있기 때문에, 관련 내용이 요약된 영상 첨부드립니다. 시청해보시면 이해하시는 데에 도움이 많이 되실 것 같습니다.
Introduction to Cache Memory - Neso Academy(링크)

질문 3.)
: 우선, 첫 번째 말씀해주신 CPU 가 RAM 에 데이터를 요청할 때, 일반적으로 컨트롤 버스를 통해 전달된다는 말씀은 맞습니다. 하지만, 강의에서 RAM 이 CPU 의 요청을 수락하고 거절한다는 것에 대한 내용은 나와있지 않습니다.
같이 학습하며 이해를 도와드리고자 자료들을 찾아보았는데요, 강의에서 참고자료로 링크되어 있는 How a CPU Works? - In One Lesson(링크)3:10 분 경 이후부터의 설명을 참고해보시면, 요청/수락의 개념보다는 지연과 에러에 대한 처리에 가깝다고 볼 수 있을 것 같습니다. 한 번 시청해보시면 이해에 도움이 되실 것 같습니다.

저도 같은 수강생이었던 학생 입장에서 조금 의견을 드려보자면, 현재 질문해주신 강의의 핵심은 C언어의 포인터 개념의 이해를 위한 좋은 배경 지식이라고 생각합니다. 지금 시점에서 당장 모든 것을 깊게 이해하지 못하여도 걱정하지 마시고, 강의를 차근차근 따라가시는 것을 추천 드려봅니다.