캐시의 친화적인 코드
229
작성한 질문수 3
안녕하세요, 선생님
시스템 소프트웨어의 개발의 모든 것 강의에 이어서 이번 강의도 정말 잘 보았습니다.
강의 내용과, 강의 소개란에 보면
"둘째, 캐시의 구조를 잘 알면 캐시 히트를 활용한 캐시의 친화적인 코드를 작성할 수 있습니다. 예를 들어, 자주 사용되는 루틴은 특정 CPU 코어에서만 실행되도록 설계할 수 있습니다."
라는 문구가 잘 이해가 안되어 질문 드립니다.
실무에서 어떤 상황에 캐시 친하적인 코드를 실제로 작성하게 되는지, 자주 사용되는 루틴은 어떤 것이 있고 어떤 업무(?)를 주로 맡았을 때 저런 개발을 하게 되는지 궁금합니다.
가능하시다면 조금 더 구체적인 사례를 선생님께 듣고 싶습니다.
미리 감사드립니다
답변 1
0
캐시에 친화적인 코드는 캐시 히트를 높힐 수 있습니다. 3가지 예시만 들어보겠습니다.
1> 특정 프로세스가 자주 실행되면 특정 core(예시: CPU1, CPU2)에서만 실행되도록 설정할 수 있습니다.
만약 프로세스가 CPU1 코어에서 자주 실행되면 해당 프로세스가 실행했던 코드나 데이터가 L1 캐시에 남아 있을 가능성이 높기 때문입니다. 그 결과 캐시 히트율을 높힐 수 있습니다.
2> 되도록 어떤 메모리 데이터에 접근할 때 되도록 근접한 원소에 접근하거나 순차적으로 처리하면 캐시 히트율을 높힐 수 있습니다. 캐시에 데이터나 코드를 로딩할 때 캐시 라인의 크기 만큼 로딩하기 때문입니다.
3> 버퍼에 되도록 접근하려는 데이터를 많이 로딩하고 접근하면 또한 캐시 히트율을 높힐 수 있습니다.
감사합니다.
비동기 스레드풀 분리 이유와 Virtual Thread 전환 시 고려사항
0
32
1
SP와 SP_ELn의 관계
0
24
1
stm32cubeide 관련 문의
0
44
2
23강 5:38 부분 질문 있습니다!
0
43
1
23강 17초 부분 질문있습니다~
0
48
2
5장 Armv7 동작모드와 6장 Armv8 익셉션 레벨 차이
0
40
2
Split 전략 강의 중 질문 있어요
0
56
2
질문이 있습니다!!
0
70
2
강의 업로드 오류 확인 요청
0
61
2
AsyncPERStrategy 비동기 처리 관련 이슈
0
50
2
시스템 소프트웨어 직무 관련 질문드려요
0
69
2
강의평을 남겼는데 자료는 못 받는건가요?
0
74
2
디스코드 초대 안돼요
0
71
2
비트맵 자료구조 관련 질문
1
50
1
책관련 질문드려요
0
69
2
4.2.1. 실습을 어떻게 진행하는것인가요?
0
62
2
DMA 관련한 강의도 제작해주실 수 있으신가요 ?
0
91
1
3.2.1.4 실습과 관련한 질문
0
72
2
script Validate가 안됩니다.
0
56
1
강의내용 질문있습니다.
1
75
2
강의 1-4 QnA 관련 질문이 있습니다
1
58
1
56강 bcm2835-mailbox.c 파일 질문
0
53
2
RateLimitTest시 저는 2초로 해야 정상으로 나오는데
0
69
2
섹션3에 22번째 강의에서 에러발생합니다..
0
115
4





