inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Arm 아키텍처: 캐시(Cache) [저자직강 3부-4]

7.3-CCSIDR_EL1 레지스터

캐시의 친화적인 코드

229

민yy

작성한 질문수 3

0

안녕하세요, 선생님

시스템 소프트웨어의 개발의 모든 것 강의에 이어서 이번 강의도 정말 잘 보았습니다.

 

강의 내용과, 강의 소개란에 보면

"둘째, 캐시의 구조를 잘 알면 캐시 히트를 활용한 캐시의 친화적인 코드를 작성할 수 있습니다. 예를 들어, 자주 사용되는 루틴은 특정 CPU 코어에서만 실행되도록 설계할 수 있습니다."

 

라는 문구가 잘 이해가 안되어 질문 드립니다.

실무에서 어떤 상황에 캐시 친하적인 코드를 실제로 작성하게 되는지, 자주 사용되는 루틴은 어떤 것이 있고 어떤 업무(?)를 주로 맡았을 때 저런 개발을 하게 되는지 궁금합니다.

가능하시다면 조금 더 구체적인 사례를 선생님께 듣고 싶습니다.

미리 감사드립니다

arm-architecture memory-management armv8 cortex-a cache

답변 1

0

김동현 (Austin Kim)

캐시에 친화적인 코드는 캐시 히트를 높힐 수 있습니다. 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